python多线程和多进程——python并行编程实验
【摘要】
工作中经常涉及到加速程序的运行,除了代码逻辑的优化,算法的优化之外,还经常使用的一招就是并发编程。至于python的并型编程这一块。说到并行编程,我们不得不谈线程和进程这两个概念:
进程:对于操作系统来说,一个任务就是一个进程(Process),熟悉linux的朋友敲命令ps -aux 就可以看到本机正在启动的任务——进程 。
...
工作中经常涉及到加速程序的运行,除了代码逻辑的优化,算法的优化之外,还经常使用的一招就是并发编程。至于python的并型编程这一块。说到并行编程,我们不得不谈线程和进程这两个概念:
- 进程:对于操作系统来说,一个任务就是一个进程(Process),熟悉linux的朋友敲命令ps -aux 就可以看到本机正在启动的任务——进程 。
- 线程:在一个进程内部(一个任务),要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。
这里要注意的是每个进程至少要干一个任务,每个进程至少有一个线程。
正常的程序都是顺序执行,你完成干完一件事后再接着干下一件事。这样就会出现一个问题,无法同时干多件事。而并行编程就是希望程序能够同时干多件事情,起到程序加速运行的效果。
并行编程的三种模式
- 1.多进程: 开启多个进程,每个进程中都有一个线程,并行去执行多个任务。
- 2.多线程 :只开启一个进程,在进程中采取多线程编程模式,真正的多线程是将任务分发到不同的CPU,充分利用多核CPU。
- 3.多进程加多线程:这个就是上面两种的组合,开启多个进程,每个进程中都采用多个进程去合力完成多个任务。
这里我们就来好好解释一下,python的GIL机制:python的GIL本质是一把互斥锁,保证同一时间只有一条线程访问解释器级别的数据,这样就避免了数据竞争带来的混乱,但是这个机制使得原
文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。
原文链接:wenyusuran.blog.csdn.net/article/details/107337824
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)