#多线程

Posted surewing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#多线程相关的知识,希望对你有一定的参考价值。

标签(空格分隔): 多线程


进程的概念:

  • 运行着的程序就是进程:

例如:windowsl里面的资源管理器,就是进程;

  • python 是通过python解释器,来运行我们的python脚本程序,这些运行的进程里面呢,至少有一个线程;
    为什么这么说呢?
    线程:是操作系统创建的,用来控制代码执行的数据结构;
    线程就像是:代码执行的许可证;没有线程操作系统是无法执行代码的;

我在写程序的时候并未真的创建线程在代码里面,我们在写代码的时候入口的主线程,是不需要我们创建的,是在解释器里面,解释器里面的线程,会运行我们的代码;

2.问题:
解释执行代码的时候,靠的是cpu,就算是有4核,就是说有4个大脑,但是我们的这么多进程怎么执行呢?

例如:
在银行办理业务:
[9][email protected])71YGVHC_HH}RDP.png-197.1kB]1
在办理业务的时候,我们会根据大堂经理的安排,来取号等等来,办理我们自己的业务,根据调度员的安排,会有相应的人员来给我们做一些安排;

其实:CPU的工作和上述的例子差不多,服务窗口是处理业务的,每个客户要办的事情就是进程,调度员:就是操作系统,哪个程序的代码有谁执行,是有cpu决定的,线程就是当前代码的一个序列;
技术分享图片

如下所述例子:
如果A去填写表格,然后B来办理业务,如果这时候A,回来了,但是B也没有办完,这个具体的情况会有调度员来决定的;

所以说:怎么处理,完全有调度员来决定;(这就和我们计算机的世界里面是一样的,完全有操作系统--调度员来决定,最终哪个代码到cpu里面执行,完全有操作系统决定,具体怎么样的,大家自行学习,学习一下操作系统是怎么操作线程;)

现在目前的操作系统是:多线程的操作系统,用户随时可以切换到不同的任务,从人的体验来是同时执行,其实不是的,只是速度比较快,人们的肉眼是无法感知的;

技术分享图片

  • 一个进程里面至少有一个线程,也可以由多个线程;

技术分享图片
python2中有两个库:thread,threading两个库
python3中有个一个threading库

  • 单线程程序:主线程的入口就是代码的开头
    主线程顺序执行,直到所有的代码执行完毕

以上是关于#多线程的主要内容,如果未能解决你的问题,请参考以下文章

什么是多线程,多进程?

多线程和多进程模式有啥区别

多线程Java多线程学习笔记 | 多线程基础知识

java中啥叫做线程?啥叫多线程?多线程的特点是啥

c++ 多线程与c多线程有啥区别?

IOS多线程安全(线程锁)