标签:
一、多进程和多线程
共同点:
让多个CPU同时处理请求
区别:
1.多线程中的线程在内存空间这一点上是共享的,进程与进程使用的是不同的内存空间。即创建线程不需要开辟内存空间,而创建新的进程需要为其分配新的内存空间
全局解释器锁(GIL)
在每一个进程的“出口”,是python特有的。它的作用是:做到了1个限制,什么限制呢,如果有2个线程同时被调度了,此时全局解释器锁就限制同时只能有1个穿过全局解释器锁,才能被CPU调度
那什么时候该使用多进程,什么时候该使用多线程呢?
线程对象的其它方法:
一、线程示例1
thread1.py
#!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def show(arg): time.sleep(1) print ‘thread‘+str(arg) for i in range(10): #创建1个线程,执行show方法,接收1个参数 t = threading.Thread(target=show,args=(i,)) #t.setDaemon(True)#主线程执行完成之后,就关闭
#设置为前台线程,所有的线程执行完成后才关闭
t.setDaemon(False)
t.start()
print ‘main thread stop‘
thread2.py
#!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def show(arg): time.sleep(1) print ‘thread‘+str(arg) for i in range(10): #创建1个线程,执行show方法,接收1个参数 t = threading.Thread(target=show,args=(i,))
#设置为后台线程,主线程执行完后就直接关闭
t.setDaemon(True)
t.start()
print ‘main thread stop‘
执行thread1.py,产生如下结果:
执行thread2.py,产生如下结果:
标签:
原文地址:http://www.cnblogs.com/jachy/p/5107832.html