(11)多线程概念

 

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

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

#线程的缘起

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

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

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

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

#线程的特点

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

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

线程的缺陷

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

#原因:

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

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

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

#想要并行的解决办法:

(1)用多进程

(2)换一个Pypy解释器

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

 

 

猜你喜欢

转载自www.cnblogs.com/lyj910313/p/10787291.html
今日推荐