zoukankan      html  css  js  c++  java
  • 多线程

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


    进程的概念:

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

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

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

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

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

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

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

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

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

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

    B.png-175.1kB

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

    A.png-136.6kB
    python2中有两个库:thread,threading两个库
    python3中有个一个threading库

    • 单线程程序:主线程的入口就是代码的开头
      主线程顺序执行,直到所有的代码执行完毕
  • 相关阅读:
    delphi与JAVA的webservice架构
    process执行DOS命令
    DELPHI+JAVA 之间使用WebService
    一步一步用delphi实现webservice
    集合接口
    再次郑重声明
    京东的crm做的不错,赞一个
    vs 2010 ClickOnce 发布设置界面,系统必选包中缺少 fx2.0 的解决方法
    使用vs2010生成clickonce安装引导程序的方法
    用 Axialis IconWorkshop 将ico图标转换成gif图标
  • 原文地址:https://www.cnblogs.com/surewing/p/9432218.html
Copyright © 2011-2022 走看看