python3.5.3rc1学习七:多线程

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()

原文地址:https://www.cnblogs.com/51testing/p/7928531.html