# CPU密集型任务测试defcpu_task(n):while n >0:n -=1# 多线程耗时:8.2秒# 多进程耗时:2.1秒
三、线程与进程的创建实战
3.1 多线程基础模板
import threadingdefdownload_file(url):print(f"开始下载 {url}")# 模拟IO操作time.sleep(2)print(f"完成下载 {url}")threads =[]for url in["url1","url2","url3"]:t = threading.Thread(target=download_file, args=(url,))threads.append(t)t.start()for t in threads:t.join()
3.2 多进程进阶模板
from multiprocessing import Process, cpu_countdefprocess_data(chunk):result =sum(x*x for x in chunk)print(f"处理结果:{result}")if __name__ =="__main__":data =list(range(1_000_000))chunk_size =len(data)// cpu_count()processes =[]for i inrange(cpu_count()):chunk = data[i*chunk_size :(i+1)*chunk_size]p = Process(target=process_data, args=(chunk,))processes.append(p)p.start()for p in processes:p.join()
from multiprocessing import Process, Lockdefprocess_task(lock, value):lock.acquire()try:print(f"安全修改共享值: {value}")finally:lock.release()if __name__ =="__main__":lock = Lock()procs =[Process(target=process_task, args=(lock, i))for i inrange(3)][p.start()for p in procs][p.join()for p in procs]