1、多线程中 T = threading.Thread(target=p)
这种写法需要通过元组传参
t1 = threading.Thread(target=test,args=(d_num,))
t2 = threading.Thread(target=test1,args=(d_num,))
2、线程池的线程,多个参数的传法
from concurrent.futures import ThreadPoolExecutor
import threading
import time
# 定义一个准备作为线程任务的函数
def action(a,b):
return a*b
A = [1,2,3]
b = [4,5,6]
with ThreadPoolExecutor() as pool:
results = pool.map(action, A, b)
for result in results:
print(result)
3、多线程中,线程池的最大数量不包括添加线程下的子线程的数量:
4、多线程中锁的使用
生成锁:lock = threading.LOCK()
给对象上锁:lock.acquire()
释放锁:lick.release()
import threading
mitue = threading.Lock()
def FileOperation():
mitue.acquire()
print("文件已经锁住!")
with open("a.txt", "w+", encoding="utf-8") as f:
f.write("hello world")
mitue.release()
print("文件锁已解开!")
FileOperation()
5、获取多线程中的线程数量:thread_num = len(threading.enumerate())
附:参考文章