在开发Android应用时必须遵守单线程模型的原则:AndroidUI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则: 1.不要阻塞UI线程 2.确保只在UI线程中访问AndroidUI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(...
分类:
移动开发 时间:
2014-11-24 16:52:51
阅读次数:
161
结合多线程的学习过程,介绍线程的状态图,随着学习的深入,这幅图不断加入新的内容。
一.线程基本状态图
这幅图是在Java 多线程(三) 线程的生命周期及优先级出现过的:
图中是线程运行的基本状态:线程调用start()方法开始后,就进入到可运行状态,随着CPU的资源调度在运行和可运行之间切换;遇到阻塞则进入阻塞状态。
二.加入同步的线程状...
分类:
编程语言 时间:
2014-11-24 13:40:02
阅读次数:
386
所谓的死锁,主要是由于进程B要访问进程A所在的资源,而进程A又由于种种原因,不释放掉其所占用的资源,所以数据库就会一直处于阻塞状态。四个必要条件:必要条件:互斥,一个资源,在同一时间点上,只能由一个进程访问。死锁分析:当任务TA在使用资源RA的时候,产生了未预知的问题,从而意外的停止了执行,但是还没...
分类:
数据库 时间:
2014-11-24 13:21:09
阅读次数:
297
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。产生死锁的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不可剥夺条件:进程已获得的资源,在末使用完...
分类:
数据库 时间:
2014-11-23 23:11:53
阅读次数:
456
redis pipelineredis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常 会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给cli...
分类:
其他好文 时间:
2014-11-23 21:35:46
阅读次数:
219
一般有六种:就绪:已经获取到除了CPU以外的所有资源,等待获取CPU调度。运行:已获取到CPU使用权。睡眠:主动让出CPU。挂起:被动让出CPU,如时间片用完了。阻塞:与挂起和睡眠类似,都是失去CPU的控制权。与挂起更相像,也是被挂起的。不同之处在于,被挂起的线程没有额外的表示,而被阻塞的线程会被记...
分类:
编程语言 时间:
2014-11-23 18:57:28
阅读次数:
209
综合案例 1) 创建子进程与父进程; 2) 注册SIGINT非实时信号与SIGRTMIN实时信号,并将这两种信号添加到进程屏蔽信号组中; 3) 注册用户自定义信号; 4) 子进程发送5次非实时信号,发5次实时信号; 5) 然后子进程发送SIGUSR1解除进程对SIGINT,SIGTRMIN信号的阻塞 6) 观察实时信号与非实时信号的区别//程序示例
void o...
分类:
系统相关 时间:
2014-11-23 13:13:42
阅读次数:
265
信号在内核中的表示 执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。 注意,阻塞和忽略是不同,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作。信号在内核中的表示可以看作是这样的:...
分类:
系统相关 时间:
2014-11-23 11:45:31
阅读次数:
325
Java's concurrent APIhttps://code.google.com/p/netconcurrent/java 之DelayQueue实际运用示例阻塞任务队列DelayQueue
分类:
Web程序 时间:
2014-11-23 00:35:04
阅读次数:
170
【sigprocmask系统调用】功能描述:设定对信号屏蔽集内的信号的处理方式(阻塞或不阻塞)。用法:#include int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);参数:how:用于指定信号修改的方式,可能选择有三种...
分类:
系统相关 时间:
2014-11-22 18:45:19
阅读次数:
236