python多线程 (3)

import threading
import time
from queue import Queue

def job(l,q):
    for i in range(len(l)):
        l[i] = l[i]**2
    q.put(l)
    # return l              线程中不可以返回值

def multithreading():
    q = Queue()
    threads = []
    data = [[1,2,3],[3,4,5],[4,4,4],[5,5,5]]
    for i in range(4):
        t = threading.Thread(target=job, args=(data[i],q))    # args是传入其他参数
        t.start()
        threads.append(t)     # 将线程都加入到threads线程中
    for thread in threads:
        thread.join()         # 将所有线程运行完
    results = []
    for _ in range(4):
        results.append(q.get())            # 在q里面拿出来值
    print(results)

if __name__ == '__main__':
    multithreading()

由于线程中不可以返回值,所以这里会用queue来接收返回值。
以上代码是queue的一个简单实现。

猜你喜欢

转载自blog.csdn.net/qq_40258748/article/details/87442684