Python在2.6版本新引进了多进程机制
一、 简介
多进程在Python中是一个包,它支持使用和线程模块类似的API来创建进程。
多进程包支持本地和远程并发,并有高效的GIL锁机制。
因为这些原因,多进程模块允许程序员在指定机器上实现完整的多进程开发,无论是Unix还是Windows.
Warning:
这个包的某些功能要求在运行的OS上能实现共享信号量机制,
如果没有这个...
分类:
编程语言 时间:
2014-08-28 13:25:14
阅读次数:
332
信号量的分类Mutual Exclusion Semaphores(互斥):一种特殊的二进制信号量,专门针对互斥操作进行了优化。Binary Semaphores(二进制):完成互斥、同步操作的最佳方式;速度最快,最常用。Counting Semaphores(计数):类似于二进制信号量,可记录信号...
分类:
其他好文 时间:
2014-08-27 16:10:07
阅读次数:
199
项目中遇到一个bug,因为接入了几家越狱平台:91、同步推、PP助手,在设备上安装了三个应用,启用其中任意一个,另外二个启动后无法创建发送socket消息,从而导致游戏直接死在登录那里,再次点击登录时线程才会被唤醒(无法发送的原因定位到,是因为在调用sem_post方法后无法将线程唤醒)。之后我尝试...
分类:
编程语言 时间:
2014-08-27 00:09:56
阅读次数:
402
学过操作系统的朋友都知道信号量,在java.util.concurrent包中也有一个关于信号量的实现:Semaphore。从代码实现的角度来说,信号量与锁很类似,可以看成是一个有限的共享锁,即只能被有限数量的线程使用的共享锁。因为存在计数,因此Semaphore的构造函数有参数permits来设定...
分类:
编程语言 时间:
2014-08-26 17:00:06
阅读次数:
208
引言 先看以下两个信号量: 13)SIGPIPE 当管道读端关闭,再往管道写东西,会发出SIGPIPE信号 17)SIGCHLD 子进程退出会向父进程发出SIGCHLD信号,系统默认处理是忽略掉该信号 代码 /*********************************************...
分类:
系统相关 时间:
2014-08-26 01:46:05
阅读次数:
311
Semaphore是一个计数的信号量。从概念上来说,信号量维持一组许可(permits)。acquire方法在必须的时候都会堵塞直到有一个许可可用,然后就会拿走这个许可。release方法加入一个许可,会有可能释放一个堵塞中的获取者(acquirer)。然而,Semaphore没有使用真实的许可对象...
分类:
其他好文 时间:
2014-08-24 15:23:53
阅读次数:
232
互斥锁、信号量、自旋锁http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.htmllinux用户空间机制:1. 互斥量 pthread互斥接口,确保同一时间只有一个线程访问数据 本质是锁 pthread_mutex_t ...
分类:
系统相关 时间:
2014-08-22 19:40:19
阅读次数:
352
信号量机制 11.1 2 个程序的例子 先看 2 个程序; #include int main(void) { allarm(10); for(;;;); } 这段程序的含义比较明显:这个程序在一个无限循环中,直到过了 10 秒,之后程序被终止。在来看另外一个程序:Static void setva...
分类:
其他好文 时间:
2014-08-22 15:54:49
阅读次数:
259
今天改了一个项目,大概是这样的:有一个服务进程,和一群客户进程,客户进程在服务进程中订阅消息,每当服务进程有新消息时,就会将新消息放到共享内存,然后根据消息的类型通知相应的客户进程。业务逻辑很简单。在当中用到了两种进程通信方式,共享内存和信号量。实现细节是,当服务进程去通知客户进程时,需要用一个fo...
分类:
其他好文 时间:
2014-08-20 22:37:22
阅读次数:
253
死锁:死锁产生的现场:当A进程P S2信号量而B进程P S1信号量时就会产生死锁,由于S2信号量须要B进程释放,而S1信号量须要A进程释放,因此两个进程都在等相互的资源,造成死锁。死锁产生的条件:相互排斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。(信号量s1 ...
分类:
其他好文 时间:
2014-08-17 12:56:22
阅读次数:
348