python--多线程多进程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--多线程多进程相关的知识,希望对你有一定的参考价值。
一、进程
对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了
两个记事本进程。进程是很多资源的集合。一个进程可以有多个线程,线程是包含在一个进程里面的,一个进程里面默认有一个线程
二、线程(Thread)
线程就是程序里面最小的执行单元,在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。有些进程还不
止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。
三、多线程
多线程就是N个线程一起干活,并发,python中的多线程使用theading模块
下面是一个简单多线程
1 import threading,time 2 def run(): 3 time.sleep(3)#干活需要3秒 4 print(‘哈哈哈‘) 5 for i in range(5): 6 t = threading.Thread(target=run)#实例化了一个进程 7 #运行线程,括号里面的就是要做的事 8 t.start()
四、多线程等待
以下用一个简单的例子来说明
1 import threading,time 2 def run():#主线程 3 time.sleep(3) 4 print(‘哈哈‘) 5 6 start_time=time.time() 7 threads=[]#存放启动的5个线程 8 for i in range(5): 9 t = threading.Thread(target=run)#第一个线程 10 t.start() 11 threads.append(t) 12 print(‘threads:‘,threads) 13 14 for t in threads:#主线程循环等待所有子线程执行结束 15 t.join()#主线程等待子线程执行结束 16 end_time=time.time() 17 print(‘run_time..‘,end_time-start_time)
五、守护线程
守护线程,就是只要主线程结束,那么子线程立即结束
1 import threading,time 2 def run():#主线程 3 time.sleep(3) 4 print(‘哈哈‘) 5 6 for i in range(5): 7 t = threading.Thread(target=run) 8 t.setDaemon(True)#把子线程设置成为守护线程 9 t.start() 10 print(‘运行完成‘)
六、多进程
多进程多用于处理CPU密集型任务
1 import multiprocessing,threading 2 def my(): 3 print(‘哈哈‘) 4 5 #进程5个 6 #每个进程下6个线程 7 def run(num): 8 for i in range(5): 9 t = threading.Thread(target=my) 10 t.start() 11 12 if __name__ ==‘__main__‘:#多进程必须要加上__name__,否则会报错 13 for i in range(5): 14 p = multiprocessing.Process(target=run,args=(6,))#启动一个进程 15 p.start() 16 p.join()
以上是关于python--多线程多进程的主要内容,如果未能解决你的问题,请参考以下文章