美文网首页
queue队列中的进程和线程

queue队列中的进程和线程

作者: MkTom | 来源:发表于2018-07-25 21:41 被阅读0次

协程

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

相关文章

网友评论

      本文标题:queue队列中的进程和线程

      本文链接:https://www.haomeiwen.com/subject/vrcmmftx.html