多线程多进程 from threading import Thread #线程类 from multiprocessing import Process #用法和线程一样 def func(name): for i in range(1000): print(i, name) class MyThread(Thread): def run(self): for i in range(1000): # 固定的
多线程多进程
from threading import Thread #线程类from multiprocessing import Process #用法和线程一样
def func(name):
for i in range(1000):
print(i, name)
class MyThread(Thread):
def run(self):
for i in range(1000): # 固定的写法,当被start的时候,被执行的就是run()
print(i)
if __name__ == '__main__':
t = Thread(target=func, args=("haha",)) # 创建线程,并给线程安排任务 args值必须是元组
t.start() # 多线程状态为可以开始工作状态,具体执行时间由CPU决定
t2 = MyThread() # 多线程的另一种写法
t2.start() # 开启线程
for i in range(1000):
print(i)
线进池
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutordef fn(name):
for i in range(100):
print(name, i)
if __name__ == '__main__':
# 创建线程池 进程池也是一样的用法
with ThreadPoolExecutor(50) as f:
for i in range(100):
f.submit(fn, name="hhh")
# 等待with执行完在执行下面语句,(守护)
print("xxxx")
t = ThreadPoolExecutor(50)
for i in range(50):
t.submit(fn, name="zzz")
print("pppp")