首页 > 编程知识 正文

python paramiko(python可以开多少线程)

时间:2023-05-05 15:24:32 阅读:100776 作者:2504

队列模块:消息在多线程间安全交换,实现多生产者、多消费者队列。

看,源队列模块包含四个有用的类:

00-1010 1,队列(),简单队列():先进先出队列

2.LifoQueue():先进先出队列。

3.PriorityQueue():优先级队列,优先级编号,按照ascii码列表顺序从小到大输出。

数据格式:(优先级号,数据)

00-1010Queue():默认值为0,小于等于0无限长;Queue(5)-长度为5的SimpleQueue():无参数,长度不限LifoQueue():继承Queue类,就像Queue实例化一样,PriorityQueue():继承Queue类,就像Queue实例化一样,

一、三种队列:

1,queue () FIFO。

从队列导入队列

que=队列()

Que.empty() #队列为空,返回True,否则返回False。

Que.full() #当队列设置长度时,当队列已满时返回True,否则返回False。

Que.qsize() #返回队列的长度。

# 4种写入队列的方式

que.put(1)

#解读:1。相当于阙。put (1,block=真,超时=无)

# 2.阻塞写:队列充满阻塞,不满意不允许写。

que.put(1,超时=1)

#解读:1。相当于que.put(1,block=True,timeout=1)

# 2.阻塞写:队列充满阻塞,阻塞超过1秒,错误队列。报告已满。

Que.put(1,block=False) #超时参数在未被阻止时无效。

#解读:1。相当于que.put (1,block=false,timeout=none)

# 2.非阻塞写入:当队列已满时,立即报告错误队列。全部

que.put_nowait()

#解读:1。相当于que.put(1,block=False)

# 2.非阻塞写入:当队列已满时,立即报告错误队列。全部

# 4种读取队列的方法

获取()#获取队列数据

#解读:1。相当于que.get (block=true,timeout=none)

# 2.阻塞获取:队列为空时阻塞,等到不为空,再读取无误。

que.get(超时=1)

#解读:1。相当于que.get(块=真,超时=1)

# 2.阻塞获取:队列为空,阻塞持续1秒以上,error _queue。报告为空。

Que.get(block=False) #超时参数在未被阻止时无效。

#解读:1。相当于que.get (block=false,timeout=none)

# 2.非阻塞获取:如果队列为空,立即报告错误_ queue.empty

que.get_nowait()

#解释:相当于que.get(block=False)

# 2.非阻塞获取:如果队列为空,立即报告错误_ queue.empty

# jion和task_done通常一起使用,请参见生产者和消费者模型的示例。

que.join()

#解读:1。一般用于生产者线程,put后线程会被阻塞,直到task_done解除阻塞后生产者线程才会继续运行。

# 2.您必须与使用者线程task_done合作才能解除阻塞,否则生产者线程将继续阻塞。

que.task_done()

#解读:1。对于使用者线程,在获取后使用task_done,当队列为空时取消阻止。

# 2.一个使用者线程task_done只能解除一个生产者线程的连接。2.简单队列(先进先出)

从队列导入简单队列

que=SimpleQueue()

Queue . empty()#等于Queue()的empty()

Que.qsize() #等于Queue()的qsize()

# que.full() #简单队列没有这个方法,因为队列的长度是无限的,不可能是满的。

#写入队列有2种方式(当长度为无穷大时,写入非阻塞模式不会超时)

Que.put(1) #立即写入,块和超时参数无效。

Que.put_nowait(1) #相当于que.put(1)

Que.get() #等于Queue()的get()

# que.task_done() #简单队列没有这个方法,不提供函数。

# que.join() # Simple queue没有这个方法,也没有提供函数3,LifoQueue () FIFO。

从队列导入后进先出队列

que=LifoQueue()

#方法和用法等同于Queue()4,PriorityQueue()按照ascii码表的顺序取出。

从队列导入优先级队列

que=PriorityQueue()

que.put([2,' b'])

# put数据格式1:元组(优先级号,数据)

# put数据格式2:列表[优先级号,数据]

#方法和用法等同于Queue()

二、四个类的实例化方法:

1。生产和消费;多生产者线程和多消费者线程

2.1生产1消费(在join和task_done的配合下)

注意:穿线。当前线程()。名称#获取线程名称。

3.两个生产者线程和一个消费者线程

注意:穿线。当前线程()。名称#获取线程名称。

00-1010先进先出:队列()或简单队列()都可以。

如果队列长度没有限制,并且没有使用阻塞模式,那么SimpleQueue()就足够了。SimpleQueue没有高级方法join()和task_done()。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。