import threading
def exampleFun():
#打印当前激活的线程数量
print(threading.active_count)
#查看上面激活的线程是哪几个
print(threading.enumerate())
exampleFun()
#创建线程
def exampleFuc():
added_thread = threading.Thread(target=thread_job)
added_thread.start()
def thread_job():
print("这是一个添加的线程,序列号是%s" % threading.current_thread())
exampleFuc()
print("--------------------")
import time
def thread1_job():
print("T1开始
")
for i in range(10):
time.sleep(0.5)
print("T1 结束
")
def exampleFunc():
thread1 = threading.Thread(target=thread1_job,name="T1")
thread1.start()
thread1.join()
print("所有任务都完成了。
")
exampleFunc()
print("--------------------")
from queue import Queue
def job(data,q):
for i in range(len(data)):
data[i] = data[i]**2
# put方法把结果放入队列,这里不能使用return语句
q.put(data)
def exampleFunction():
# 新建一个队列
q = Queue()
# 新建一个空的多线程列表
threads = []
# 给出一个数据,到job去计算
data = [[1,2,3],[2,3,4],[3,4,5],[4,5,6]]
# for 循环创建一个多线程,大小根据data[]的大小
for x in range(4):
t = threading.Thread(target = job,args=(data[x],q))
#启动线程
t.start()
# 把创建线程添加到多线程threads这个列表
threads.append(t)
for each_thread in threads:
each_thread.join()
# 定义一个计算结果列表
results = []
# 把结果分别从队列取出,这里需要取4次
for y in range(4):
# q.get()就是从队列取出结果
results.append(q.get())
# 等所以事情完成,就打印结果列表
print(results)
exampleFunction()