zoukankan      html  css  js  c++  java
  • (11)多线程概念

     

    #进程是资源分配的最小单位

    #线程是计算机中调度的最小单位

    #线程的缘起

    资源分配需要分配内存空间,分配cpu:

    分配的内存空间存放着临时要处理的数据等,比如要执行的代码,数据

    而这些内存空间是有限的,不能无限分配

    目前来讲,普通机器,5个并发程序已是上限.线程概念应用而生.

    #线程的特点

    线程是轻量级,干更多的活,同一个进程中的所有线程的资源是共享的.

    每一个进程中都有至少一条线程在工作

    线程的缺陷

    #线程可以并发,但是不能并行(即可以1个cpu执行,不能多个cpu一起执行)

    #原因:

    python是解释型语言,执行一句编译一句,而不是一次性全部编译成功,不能提前规划,都是临时调度

    容易造成不同的cpu却反复执行同一个程序.所以加了一把锁叫GIL

    全局解释器锁(Cpython解释器特有) GIL锁:同一时间一个线程只能被一个cpu执行

    #想要并行的解决办法:

    (1)用多进程

    (2)换一个Pypy解释器

    #计算型程序会过度依赖cpu,但网页,爬虫,OA办公,这种交互型带有阻塞的程序里,速度影响无所谓

     

     

  • 相关阅读:
    NYOJ47 过河问题
    CodeForces1165
    LuoGuP3667
    ZROI#958
    ZROI#957
    KMP小结
    LuoGuP2742[模板]二维凸包
    ZROI#999
    ZROI#997
    ZROI#996
  • 原文地址:https://www.cnblogs.com/lyj910313/p/10787291.html
Copyright © 2011-2022 走看看