Python多线程多进程的例子

发布于 2022-09-05 07:29:44 字数 220 浏览 16 评论 0

看了些python的书,但是一直没弄明白多线程,多进程在实际中是怎么用的,不知各位有没有具体代码或者文档给推荐下。

比如现在有一个文件,文件里每行是一个URL,现在要实现用张程池,开启20个线程,要求每执行完一条,就从文件里再读一条加到任务队列(不能一次性把文件都读到内存,要一次读一行),一直保持20个线程去执行。这样的话具体的代码该怎么写?或者是多线程操作rabbitmq或者redis的类似代码,求解。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失眠症患者 2022-09-12 07:29:44
def func(line):
    pass

p = multiprocessing.Pool(20)
p.map(func,file('yourfile'))
牵强ㄟ 2022-09-12 07:29:44

我的demo仅做参考,并不限于此方法:

# coding=utf8
import threading
import time
import random
class Test(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
    def run(self):
        global threadlist
        time.sleep(random.randint(1,5))
        threadlist.remove(self)#线程运行结束,则在threadlist中remove掉

threadlist = []  # 创建一个列表来保存多线程
for i in range(20):
    threadlist.append(Test())
for each in threadlist:
    each.start()
while True:
    time.sleep(0.2)
    length=len(threadlist)
    num=20-len(threadlist)
    print '当前线程数%d'%length
    if length == 20:
        print 'pass'
    else:
        for i in range(20-length):
            threadlist.append(Test())
        for each in threadlist[-num:]:
            each.start()
        print 'appended'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文