首页 > 编程语言 > 详细

多线程3

时间:2021-08-29 22:34:36      阅读:24      评论:0      收藏:0      [点我收藏+]

多线程3

线程任务无法像函数一样用return返回一个值,Queue类是解决这个问题的一种方法。

以下代码用Queue方法返回线程任务的处理结果:

import threading
from queue import Queue


def thread1_job(lis, q):
    for i in range(3):
        lis[i] = lis[i] * 2
    q.put(lis)


def main():
    data = [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
    thread = []
    queue = Queue()
    for i in range(3):
        t = threading.Thread(target=thread1_job, args=(data[i], queue))
        t.start()
        thread.append(t)
    for i in range(3):
        thread[i].join()

    for _ in range(3):
        print(queue.get())


if __name__ == ‘__main__‘:
    main()

输出结果:

[2, 4, 6]
[4, 6, 8]
[6, 8, 10]

本文中线程的任务是把3元数组的每个元素乘2。

Queue是队列,先进先出。

在任务中乘2以后,把新的数组放到Queue对象中。

在main函数,可以从Queue对象取出新的数组。

多线程3

原文:https://www.cnblogs.com/cxf-tech/p/15196212.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!