很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无...
分类:
移动开发 时间:
2014-07-11 20:05:06
阅读次数:
299
multiprocessing模块实现了对多进程编程的封装,让我们可以非常方便的使用多进程进行编程。它的使用方法非常类似threading模块。
1.创建一个进程
import multiprocessing
def worker():
"""worker function"""
print 'Worker'
return
if __name__ == '_...
分类:
编程语言 时间:
2014-07-10 17:10:01
阅读次数:
216
多进程通信queue和pipe的区别: pipe用来在两个进程间通信。queue用来在多个进程间实现通信。 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法。1)Queue & JoinableQueuequeue用来在进程间传递消息,任何可以pickle-able的对象都可...
分类:
编程语言 时间:
2014-07-07 14:49:49
阅读次数:
321
python类库32[多进程同步Lock+Semaphore+Event]同步的方法基本与多线程相同。1) Lock当多个进程需要访问共享资源的时候,Lock可以用来避免访问的冲突。importmultiprocessingimportsysdefworker_with(lock,f):withlo...
分类:
编程语言 时间:
2014-07-07 14:35:20
阅读次数:
195
JGW Maxwell在2011年底做了一个Ruby Web框架的并发处理能力测试,还做了node.js的对比测试。用250个并发去做压力测试,后端使用MongoDB数据库,总共跑完10万个请求,测试结果如下:Web框架并发模型吞吐量Rails多进程531 request/sSinatra多进程57...
分类:
Web程序 时间:
2014-07-07 13:45:08
阅读次数:
267
硬件多核时代的软件业以前计算能力的提升一直在摩尔定律的指引下,沿着提升CPU时钟频率这条道路前进,从初期的几十MHz到如今的几GHz。但是,进入2002年以 来,CPU提升主频的困难越来越大,因为主频的提升带来了散热和功耗的大幅增加等问题。几年前,英特尔和AMD都调整了研究方向,开始研究在同一CPU...
分类:
Web程序 时间:
2014-07-06 22:13:04
阅读次数:
305
多进程编程
多进程编程包括如下内容:
复制进程影映像的fork系统调用和替换进程映像的exec系列系统调用。
僵尸进程以及如何避免僵尸进程
进程间通信(Inter-Process Communication,IPC)最简单的方式:管道
3种进程间通信方式:信号量,消息队列和共享内存
fork系统调用
#inclu...
分类:
系统相关 时间:
2014-07-06 08:09:00
阅读次数:
329
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-07-03 20:59:25
阅读次数:
298
Valgrind简介: Valgrind是动态分析工具的框架。有很多Valgrind工具可以自动的检测许多内存管理和多进程/线程的bugs,在细节上剖析你的程序。你也可以利用Valgrind框架来实现自己的工具。 Valgrind通常包括6个工具:一个内存错误侦测工具,两个线程错误侦测工...
分类:
系统相关 时间:
2014-07-02 00:35:40
阅读次数:
308
转至:http://blog.sina.com.cn/s/blog_6d7fa49b01014q7p.html很多人会问这样的问题,Linux内核中提供了各式各样的同步锁机制到底有何作用?追根到底其实是由于操作系统中存在多进程对共享资源的并发访问,从而引起了进程间的竞态。这其中包括了我们所熟知的SM...
分类:
系统相关 时间:
2014-06-30 21:31:43
阅读次数:
385