• day 29

    网络编程(中)

    进程间的通信(multiprocess.queue)

    主要运用:队列; 生产消费

    相当于内存中产生一个队列空间,可以存放多个数据,但数据的顺序是由先进去的排在前面的。

    生产者与消费者

    生产者:生产数据的

    消费者:使用数据的

    例子:通过队列,生产者把数据添加到队列中,消费则从队列中获取数据

    线程基础

    ==什么是线程==

    线程与进程都是虚拟单位,目的是为了更好的描述某种事物.

    ? 进程:资源单位

    ? 线程:执行单位

    开启一个进程,一定会有一个线程,线程才是真正执行者.

    ==为什么使用线程==

    节省内存资源

    开启进程:

    1. 开辟一个名称空间,每开启一个进程都会占用一份内存资源.
    2. 会自带一个线程

    开启线程:

    1. 一个进程可以开启多个线程
    2. 线程的开销远小于进程

    注意:线程不能实现并行,线程只能实现并发,进程可以实现并行.

    举例:内存就像一个工厂,子进程就像一个工厂车间,线程就像车间内的流水线.

    GIL全局解释器锁

    在多线程环境中,python虚拟机按以下方式执行:

    1. 设置GIL;
    2. 切换到一个线程去运行;
    3. 运行指定数量的字节码指令或者线程主动让出控制(可以调用time.sleep(0));
    4. 把线程设置为睡眠状态
    5. 解锁GIL;
    6. 再重复以上所有步骤.

    让并发变成串行,牺牲了执行效率,保证了数据安全.

    在程序并发执行时,需要修改数据时使用.

    相关文章
    相关标签/搜索
    王中王鉄算盘开奖结果王中五香港马会全年资枓大全,2019年马会全年资料公开,香港马会免费资枓大全,香港马会资枓大全2019