使用队列让线程同步
来源:互联网 发布:linux进程查看命令 top 编辑:程序博客网 时间:2024/05/19 16:35
__author__ = 'LL_YING''''Python中的Queue对象提供对线程同步的支持。使用Queue对象可以实现多生产者和多消费者形成先进先出的队列。每个生产者将数据一次存入队列,而每个消费者依次从队列中取出数据。'''import threadingimport queue # Python2中是Queue模块queue = queue.Queue()class Producer(threading.Thread): def __init__(self, threadingname): threading.Thread.__init__(self, name=threadingname) def run(self): global queue queue.put(self.getName()) print(self.getName(), 'get', self.getName(), 'from queue')class Consumer(threading.Thread): def __init__(self, threadingname): threading.Thread.__init__(self, name=threadingname) def run(self): global queue print(self.getName(), 'get', queue.get(), 'from queue')plist = []clist = []for i in range(10): p = Producer('Producer' + str(i)) plist.append(p)for i in range(10): c = Consumer('Consumer' + str(i)) clist.append(c)for i in plist: i.start() i.join()for i in clist: i.start() i.join()# 输出为# Producer0 get Producer0 from queue# Producer1 get Producer1 from queue# Producer2 get Producer2 from queue# Producer3 get Producer3 from queue# Producer4 get Producer4 from queue# Producer5 get Producer5 from queue# Producer6 get Producer6 from queue# Producer7 get Producer7 from queue# Producer8 get Producer8 from queue# Producer9 get Producer9 from queue# Consumer0 get Producer0 from queue# Consumer1 get Producer1 from queue# Consumer2 get Producer2 from queue# Consumer3 get Producer3 from queue# Consumer4 get Producer4 from queue# Consumer5 get Producer5 from queue# Consumer6 get Producer6 from queue# Consumer7 get Producer7 from queue# Consumer8 get Producer8 from queue# Consumer9 get Producer9 from queue
0 0
- 使用队列让线程同步
- Python 线程同步队列
- 同步队列协作线程
- 使用Spring的FactoryBean创建同步队列线程池
- Java使用阻塞队列BlockingQueue实现线程同步
- win32 线程同步缓冲队列
- 线程同步与双队列
- 线程同步与双队列
- 使用Event同步线程
- 线程同步--使用互斥量
- 使用事件同步线程
- 使用信号灯同步线程
- 使用互斥体同步线程
- 线程同步--使用信号量
- Java线程同步使用
- Python线程编程(三)同步队列
- [JAVA]线程同步队列 LinkedBlockingQueue ConcurrentLinkedQueue
- 关于线程同步与双队列性能
- Python使用条件变量保持线程同步
- sharepoint 2016 学习系列篇(5)-创建一个应用程序网站
- 解决java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket异常
- Codeforces Gym 100340I Longest Common Subpair 字符串DP
- ELK日志管理
- 使用队列让线程同步
- 线程之间的通信
- 错误代码:E/FragmentManager(1337): No view found for id 0x7f030005 (com.example.mnews:layout/menu_frame)
- 一个双引号,愁白头
- 同源策略
- 构造函数综合小练习1
- 自定义缓存工具类----sharedPreferences
- get_optlong用法(linux解析命令行参数)
- leetcode刷题,总结,记录,备忘 260