码迷,mamicode.com
首页 > 编程语言 > 详细

python 多进程与多线程浅析

时间:2015-07-14 13:49:10      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:python   thread   pool   process   gil   

python多线程是伪多线程,同时间最多只有一个线程在执行,但这样并不代码python的多线程没有作用,对于IO密集型的系统,python的多线程还是能极大的提升性能~

关于python伪多线程可以去了解python GIL的概念。

以下代码涉及python多线程,多进程,进程池相关操作:

#encoding:utf-8
from multiprocessing import Pool,Manager,cpu_count,Lock,Process
import thread
import threading

def process_fun(msg):
	print 'process_fun msg:', msg
	pass

def thread_fun(msg):
	print 'thread_fun msg:', msg
	pass
	
if __name__ == '__main__':
	msg = 'hello world';
	#启动一个子进程
	msg = "is process"
	child_proc = Process(target=process_fun, args=(msg,))
	child_proc.start() 

	#启动一个线程 使用thread模块
	msg = "is thread using thread module"
	thread.start_new_thread(thread_fun, (msg,)) 
	
	#启动一个线程 使用threading模块
	msg = "is thread using threading module"
	th = threading.Thread(target=thread_fun, args=(msg,))
	th.start()
	
	#进程池方式
	msg = "is pool process"
	worker_count = 4
	pool = Pool(worker_count)
	for i in range(worker_count):
		pool.apply_async(process_fun, args=(msg, ))
	pool.close()
	pool.join() #主进程阻塞等待所有子进程执行完毕


执行结果如下:

技术分享



版权声明:本文为博主原创文章,未经博主允许不得转载。

python 多进程与多线程浅析

标签:python   thread   pool   process   gil   

原文地址:http://blog.csdn.net/xiaokfc/article/details/46874821

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!