标签(空格分隔): 多线程
进程的概念:
- 运行着的程序就是进程:
例如:windowsl里面的资源管理器,就是进程;
- python 是通过python解释器,来运行我们的python脚本程序,这些运行的进程里面呢,至少有一个线程;
为什么这么说呢?
线程:是操作系统创建的,用来控制代码执行的数据结构;
线程就像是:代码执行的许可证;没有线程操作系统是无法执行代码的;
我在写程序的时候并未真的创建线程在代码里面,我们在写代码的时候入口的主线程,是不需要我们创建的,是在解释器里面,解释器里面的线程,会运行我们的代码;
2.问题:
解释执行代码的时候,靠的是cpu,就算是有4核,就是说有4个大脑,但是我们的这么多进程怎么执行呢?
例如:
在银行办理业务:
![9]_V@BRV)71YGVHC_HH}RDP.png-197.1kB]1
在办理业务的时候,我们会根据大堂经理的安排,来取号等等来,办理我们自己的业务,根据调度员的安排,会有相应的人员来给我们做一些安排;
其实:CPU的工作和上述的例子差不多,服务窗口是处理业务的,每个客户要办的事情就是进程,调度员:就是操作系统,哪个程序的代码有谁执行,是有cpu决定的,线程就是当前代码的一个序列;
如下所述例子:
如果A去填写表格,然后B来办理业务,如果这时候A,回来了,但是B也没有办完,这个具体的情况会有调度员来决定的;
所以说:怎么处理,完全有调度员来决定;(这就和我们计算机的世界里面是一样的,完全有操作系统--调度员来决定,最终哪个代码到cpu里面执行,完全有操作系统决定,具体怎么样的,大家自行学习,学习一下操作系统是怎么操作线程;)
现在目前的操作系统是:多线程的操作系统,用户随时可以切换到不同的任务,从人的体验来是同时执行,其实不是的,只是速度比较快,人们的肉眼是无法感知的;
- 一个进程里面至少有一个线程,也可以由多个线程;
python2中有两个库:thread,threading两个库
python3中有个一个threading库
- 单线程程序:主线程的入口就是代码的开头
主线程顺序执行,直到所有的代码执行完毕