协程
from gevent import monkey
import gevent
monkey.patch_all()
g1=gevent.spawn(fun,args)
1.一个程序运行起来至少有一个进程,一个进程至少有一个线程
2.处理器cpu分配给线程,即cpu真正运行的是线程中的代码
3.分配cpu给线程时,是通过时间片轮训方式进行的
4.进程是操作系统分配程序执行资源的单位,而线程是进程的一个实体,
是CPU调度和分配的单位。
队列 Queue
get
队列为空默认阻塞线程
put
队列已满调用put默认阻塞队列
put_nowait() 已满调用会报错
q.unfinished_tasks (只统计放进队列中没有被task_done()的数量) 统计已经get进queue中的数量(无视put),q.unfinished_tasks不为0的时候能用于阻塞主线程q.join
q.task_done() 调用的时候能让q.unfinished_tasks 减少1
线程
守护线程:主线程结束了,子线程会自动结束
t.setDaemon(True) # 生成守护进程
设置:t1.setDaemon(True)
# 导入的格式
from threading import Thread
from queue import Queue
from threading import Thread
进程
守护进程:主进程结束了,子进程会自动结束
p.daemo=True 生成守护进程
进程中必须使用JoinableQueue来生成队列
# 导入的格式
from mutiprocessing import Process
from mutiprocessing import JoinableQueue














网友评论