聊聊 python 多线程与多进程
为什么要使用多进程与多线程呢?
因为我们如果按照流程一步步执行任务实在是太慢了,假如一个任务就是 10 秒,两个任务就是 20 秒,那 100 个任务呢?况且 cpu 这么贵,时间长了就是浪费生命啊!一个任务比喻成一个人,别个做高铁,你做绿皮火车,可想而知!接下来我们先看个例子:
复制代码
执行结果如下图:
![](https://static001.geekbang.org/infoq/c7/c7fa376da8374f15866b75c4310f0fec.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
都花费 13s 了。。。。。。。。,大无语好吧!
多进程
复制代码
执行结果如下:
![](https://static001.geekbang.org/infoq/7e/7edceae9efe1417e0a3b3974c1ca1df2.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
上面的代码就是通过 Process 类创建的进程对象,通过 target 参数传递一个需执行的函数,args 是要传入的传输,它是一个组。后面通过 start()来启动函数,join()等待函数结束,我们可以从出时间减少了很多,最后的时间不在是两个任务依次执行的综合了!
多线程
复制代码
执行结果:
![](https://static001.geekbang.org/infoq/62/622ad48c09abc38622911d2f6e539955.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
用 class 方式
复制代码
执行结果:
![](https://static001.geekbang.org/infoq/31/312d5c3e64187ecba87d775d5cd42b14.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
问题:
那你们知道进程与线程区别吗?
什么时候用线程什么时候用进程?
线程在做计算任务时,需要注意什么呢?
作者:李 MAX
链接:https://juejin.cn/post/7374668941653196826
评论