我想让系统一边采集数据一边处理,python多线程怎样弄?
答案:2 悬赏:70 手机版
解决时间 2021-02-22 16:14
- 提问者网友:人生佛魔见
- 2021-02-22 03:57
因为采集的数据要传给处理的线程不知道怎样去弄。求大神指导,谢谢!
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-02-22 04:48
查一下生产者消费者模式,python的生产者消费者模式的框架,在框架上改改应该就可以满足你的需求。
全部回答
- 1楼网友:动情书生
- 2021-02-22 05:32
python支持多线程效果还不错,很多方面都用到了python 多线程的知识,我前段时间用python 多线程写了个处理生产者和消费者的问题,把代码贴出来给你看下:
#encoding=utf-8
import threading
import random
import time
from queue import queue
class producer(threading.thread):
def __init__(self, threadname, queue):
threading.thread.__init__(self, name = threadname)
self.sharedata = queue
def run(self):
for i in range(20):
print self.getname(),'adding',i,'to queue'
self.sharedata.put(i)
time.sleep(random.randrange(10)/10.0)
print self.getname(),'finished'
# consumer thread
class consumer(threading.thread):
def __init__(self, threadname, queue):
threading.thread.__init__(self, name = threadname)
self.sharedata = queue
def run(self):
for i in range(20):
print self.getname(),'got a value:',self.sharedata.get()
time.sleep(random.randrange(10)/10.0)
print self.getname(),'finished'
# main thread
def main():
queue = queue()
producer = producer('producer', queue)
consumer = consumer('consumer', queue)
print 'starting threads ...'
producer.start()
consumer.start()
producer.join()
consumer.join()
print 'all threads have terminated.'
if __name__ == '__main__':
main()
如果你想要了解更多的python 多线程知识可以点下面的参考资料的地址,希望对有帮助!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯