进程里至少有一个线程
python实现多任务的方法
多进程
多线程
多进程+多线程
在单核CPU中,多进程实际上是快速交替切换运行进程
在多核CPU中,可以实现同步的多进程
代码实现多线程方法
以下是Window版本
方法一:使用multiprocessing模块,创建一个Process类。multiprocessing是一个跨平台实现多进程的模块
from multiprocessing import Process#Process类
import os
#子进程要执行的代码
def run_proc(name):
print('Parent child process %s (%s)...' %(name,os.getpid()))
if __name__=='__main__':
print('Parent process %s.' % os.getpid())
p=Process(target=run_proc, args=('test',))
print('Child process will start.')
p.start()#开启进程
p.join()#等待子进程结束
print('Child process end.')
使用进程池批量创建子进程
from multiprocessing import Pool, Process#Process类
import os,time,random
#子进程要执行的代码
#启动大量子进程,使用进程池批量创建子进程
def long_time_task(name):
print('Run task %s (%s)...' %(name,os.getpid()))
start=time.time()#time.time()返回当前时间戳
time.sleep(random.random()*3)#令当前执行的进程暂停
end=time.time()
print('Task %s runs %0.2f seconds.' %(name,(end -start)))
if __name__=='__main__':
print('Parent process %s.' % os.getpid())
p = Pool(4)
for i in range(5):
p.apply_async(long_time_task,args=(i,))
print('Waiting for all subprocesses done...')
p.close()#关闭进程池
p.join()#等待子进程退出
print('All subprocesses done.')