线程,进程,协程简单对比:
- 进程是资源分配的单位;
- 线程是操作系统调度的单位;
- 进程切换需要的资源很大,效率很低;
- 线程切换需要的资源一般,效率一般(当然在不考虑GIL的情况下)
- 协程切换任务资源很小,效率高;
- 多进程,多线程根据CPU核数不一样可能是并行的,但是协程是在一个线程中,所以是并发;
- Python中的线程由于GIL锁的存在,并不能实现并行;
线程:
from threading import Thread
t1 = Thread(target=work1,args=('小明',),kwargs={'name':'小静'})
t1.start()
进程:
from multiprocessing import Process
p1 = Process(target=work1,args=(meta,))
p1.start()
协程:
import gevent
g1 = gevent.spawn(work1,url="http://www.baidu.com")