python笔记线程相关概念

82 阅读2分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情

0 环境

  • 编辑器:webstorm或者vscode
  • 系统版本:windows10
  • 编辑器版本:最新
  • 浏览器:谷歌

1 参考文档

参考1

参考2

推荐参考

2 并发和并行

当没遇到并发和并行的问题,我是搞不清楚它的,或者说概念混肴,毕竟从感官上来说,都是多任务。直到看别人批量下载的代码,才发现为啥我会慢。

先看如下图: 目的呢,都是为了同时处理多任务,唯一区别点在单核和多核。并发把任务分割成多个时间片,这些任务在时间片交替执行,一段时间内的同时(同时处理多个任务)。并行,多个核心处理同时处理任务。 image.png

3 线程和进程

1个进程 == 多个线程,多个线程共享这个进程的资源,有点类似堆,共享这块资源。那么在python中它的进程和线程是怎么区分的呢,需要先知道什么是解释器了,百度搜到的,python解释器它自身也是程序,只是它是用来解释执行 python代码的,所以叫解释器。python里的每个进程会启动一个解释器,可以想像一下我们点开了一个解释执行python代码的程序,然后在线程中会共享该解释器。

4 总结

虽然并发和并行在肉眼的感知好像都是同步的,但是从核心的角度来看,还是区别挺大的,单核就像一个屠夫,对运来的猪肉,按照区域分割售卖,也就说一段时间内,才能完成猪肉各个部分的分割。但多核就不同了,多个屠夫同时处理该猪肉,效果完全不同了。线程和进程的关系,进程有点像是上学时的集体宿舍,而线程是就是一个个学生,共有这个宿舍。