基本功能
- 查看
import threading
print(threading.active_count()) #显示当前存在的线程数
print(threading.enumerate()) #显示当前存在的线程
print(threading.current_thread()) #显示正在工作的线程
threading.active_count():当前存在的线程数
threading.enumerate():当前存在的线程
threading.current_thread():正在工作的线程
- 添加线程
def add_threading():
print("I am added")
if __name__ is __main__:
add_thread = threading.Thread(target=add_threading) #添加线程
add_thread.start() #让添加的线程开始工作
用threading.Thread(target)来添加线程
用start()让该线程运行
- join()功能
当我们定义多线程时,这些线程会处于一个并行运行的状态,当我们需要某个线程运行完之后再运行其它线程时,我们可以用join()来实现。
def threading_fitst():
print("I am fist")
def threading_sec():
print("I am sec")
if __name__ is __main__:
thread_first = threading.Thread(target=threading_fitst) #添加线程
thread_sec = threading.Thread(target=threading_sec) #添加线程
thread_first .start() #让添加的线程开始工作
thread_first.join() #让该线程运行完
thread_sec.start() #让添加的线程开始工作
4.用Queue()承接返回值
前面提到的多线程都是只能在对应的线程中运行,但是没有得到返回值,在此,可以用Queue()接受返回值
import threading
from queue import Queue
def get_data(a, q):
a = a * 2
q.put(a)
if __name__ is "__main__":
ori_data = [1, 2, 3, 4]
q = Queue()
for data in ori_data:
thread = threading.Thread(target=get_data, args=(data, q)) # args为输入目标函数的参数
thread.start()
result = []
for _ in range(len(ori_data)):
result.append(q.get())