线程

进程:

互斥锁

进程之间的数据的共享模块

关于数据安全的问题

进程池:(自己了解,线程部分还会讲)

Multiprocessing中的from multiprocessing import pool不常用了

事件/信号量/管道 (太不常用了,所以不讲了)

线程的概念(面试重点)

认识线程模块

 

线程是进程当中的一个单位

进程是计算机当中最小的资源分配单位   (进程 是圈资源)

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

开启进程 关闭进程 切换进程都需要花时间

电脑的资源有限

开启过多的进程会导致计算机奔溃

理论线程服务上限:

CPU核数*2

进程主要是进行数据隔离

两个不同的服务器端

并发:同一时刻能同时接受多个客户端的请求

线程:

轻量级进程

不做数据隔离

在同一个进程中的多个线程是可以共享数据的

线程的开启/销毁/切换都比进程高效很多

多个进程可以利用多核

多个线程也可以利用多核

多进程和多线程的区别:

进程 数据隔离 开销大

线程 数据共享 开销小

 

Python 当中的多线程

Cpython 解释器 中的GIL

Jpython pypy解释器中的多线程是可以访问多核的

 

利用多核 意味着 多个CPU可以同时计算线程中的代码

 

 

_threadthreading模块

Threadinghemultiprocessing 先有threading

Threading 没有池的功能

Multiprocessing 完全模仿threading模块

实现了池的功能

Concurrent .futures

实现了线程池/进程池

在线程部分不需要通过import来为新的线程获取代码

我因为新的线程和之前的主线程共享同一段代码

不需要import也就不存在在子线程中有重复了一次创建线程的操作

所以就不必要 if__name__ = __main__

posted @ 2019-04-17 15:17  .如影随行  阅读(95)  评论(0编辑  收藏  举报