Threading 多线程

基本功能

  1. 查看
import threading

print(threading.active_count()) #显示当前存在的线程数
print(threading.enumerate()) #显示当前存在的线程
print(threading.current_thread()) #显示正在工作的线程

threading.active_count():当前存在的线程数
threading.enumerate():当前存在的线程
threading.current_thread():正在工作的线程

  1. 添加线程
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()让该线程运行

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值