任务

实时/分时、抢占式系统的意思 

佐手、 提交于 2019-12-22 14:28:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 原来实时系统是和抢占式系统是对应的。哈哈,今天才明白! 抢占式多任务操作系统: 在 Windows 3.1 中,多任务方式是“协作式多任务”,意思是说一个任务得到了 CPU 时间,除非它自己放弃使用 CPU ,否则将完全霸占 CPU ,所以任务之间需要协作——使用一段时间的 CPU ,放弃使用,其它的任务也如此,才能保证系统的正常运行;而在 Windows 95 中使用的就是“抢占式多任务”了,它的总控制权在 Windows 手中,Windows 会轮流询问每一个任务是否需要使用 CPU ,需要使用的话就让它用,不过在一定时间后,Windows 会剥夺当前任务的 CPU 使用权,把它排在询问队列的最后,再去询问下一个任务……。这种方式上的不同造成 95 和 3.1 性能上的不同:3.1 中如果有一个任务死锁,则系统也同样死锁;95 中有一个任务死锁,系统仍能正常运行。 实时系统 指电脑使用者发出一要求时,在一个限定的时间内,电脑系统回复使用者的要求。一般的反应时间视行业而定,约在数秒之内,时间越短则使用者的满意度越高,但也需要较好的电脑 系统。大部分线上系统以响应时间的长短来评估系统的效率,越短的反应时间表示系统效率越高。   或指计算机对于外来信息能够及时进行处理,并在控制对象允许时间范围内作出快速反应

Python任务调度模块 – APScheduler

僤鯓⒐⒋嵵緔 提交于 2019-12-05 15:09:50
Python任务调度模块 – APScheduler 2015年6月11日 by debugo · 14条评论 APScheduler简介 APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。目前最新版本为3.0.x。 在APScheduler中有四个组件: 触发器(trigger) 包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行。除了他们自己初始配置意外,触发器完全是无状态的。 作业存储(job store) 存储被调度的作业,默认的作业存储是简单地把作业保存在内存中,其他的作业存储是将作业保存在数据库中。一个作业的数据讲在保存在持久化作业存储时被序列化,并在加载时被反序列化。调度器不能分享同一个作业存储。 执行器(executor) 处理作业的运行,他们通常通过在作业中提交制定的可调用对象到一个线程或者进城池来进行。当作业完成时,执行器将会通知调度器。 调度器(scheduler) 是其他的组成部分。你通常在应用只有一个调度器,应用的开发者通常不会直接处理作业存储、调度器和触发器,相反,调度器提供了处理这些的合适的接口。配置作业存储和执行器可以在调度器中完成,例如添加、修改和移除作业。 你需要选择合适的调度器

SharedPreferences共享首选项

别说谁变了你拦得住时间么 提交于 2019-12-03 23:44:58
这是一个轻量及的键值存储机制,只可以存储基本数据类型,以KEY-VALUES存储 getSharedPreferences() - Use this if you need multiple preferences files identified by name, which you specify with the first parameter. 创建一个指定名称的SP getPreferences() - Use this if you need only one preferences file for your Activity. Because this will be the only preferences file for your Activity, you don't supply a name. 不指定名称成绩一个只能在该Activity下试用的SP // 创建SharedPreferences得对象 // MODE_PRIVATE 这是默认的形式,配置文件只允许本程序和享有本程序ID的程序的访问 // MODE_WORLD_READABLE 允许其他的应用程序读文件 // MODE_WORLD_WRITEABLE 允许其他的应用程序写文件 // 该状态在api23已废弃 // MODE_MULTI_PROCESS 主要用于多任务,2

前端开发神器:grunt快速入门

限于喜欢 提交于 2019-12-01 14:29:11
grunt是什么? grunt是一个基于nodejs的task runner,简单来说,就是类似于.net平台的msbuild以及java平台的maven。 grunt能做什么? grunt可以使你的项目中重复的任务,比如压缩,语法检查,编译(比如LESS预处理,coffeescript编译),单元测试等变得更加简单。 安装 因为grunt是基于node.js的,所以我们首先要安装node.js以及node.js的包管理工具npm。 windows 平台下只要在 NODE.JS官方 下载MSI安装包,直接安装,node.js以及npm就能直接装好。 Linux平台下,因为一些发行版软件源的node.js版本想对比较低,grunt 0.4又要求node.js的版本要>=0.8.0,因此我推荐编译安装。 安装完成node.js以后,就可以开始安装npm,grunt以及grunt-cli了。 sudo apt-get -y install npm sudo npm install -g grunt sudo npm install -g grunt-cli Getting started 配置文件 grunt需要两个配置文件:Gruntfile.js以及package.json。 Gruntfile.js Gruntfile.js要放在项目的 根文件夹 下,用于配置grunt要运行的任务

解决Quartz定时任务被触发两次的问题(附带:Quartz的测试用例)

跟風遠走 提交于 2019-11-29 02:59:34
很多人在使用spring的 Quartz 配置定时任务时,会发现每次定时时间到达后,指定的定时方法同时执行了两次。 (P.S. 本人项目用的Jfinal搭建,同样出现该问题。) 解决quartz定时任务被触发两次的问题: 其中 <Host/> 告诉tomcat,在启动的时候加载webapps下的所有项目工程文件, <Context/> 又让tomcat再加载了一遍(一般情况下配置 <Context/> ,主要是由于想域名访问时将工程名去掉的原因配置),这种情况下会导致工程中的quartz定时被两次触发,执行两次。 <Host/>里面的改成 autoDeploy="false" deployOnStartup="false" 这样就可以避免tomcat服务器中自启动导致quartz定时任务被触发两次。(当然还可以按需求修改,毕竟每个项目的需求都不尽相同。) 1. autodeploy属性值设置为false,如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用,设成false就不会。 2.增加deployOnStartup="false",表示Tomcat服务器启动时, 不会自动发布appBase目录下所有的Web应用。 这样的话,在tomcat启动时,不会自动发布appBase下的应用