Fork me on GitHub

day 29

day 29

- 进程互斥锁:
    让并发变成串行, 牺牲了执行效率, 保证了数据安全.
    在程序并发执行时,需要修改数据时使用.

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

- 堆栈: 先进后出

- IPC(进程间通信):
    进程间数据是相互隔离的,若想实现进程间通信,可以利用队列.


- 生产者与消费者:
    生产者: 生产数据的
    消费者: 使用数据的

    - 生活中:
        比如: 卖油条, 一边生产油条, 一边卖油条, 供需不平衡.

    - 程序中:
        通过队列,生产者把数据添加队列中,消费者从队列中获取数据.

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

        - 进程: 资源单位
        - 线程: 执行单位

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


    2.为什么要使用线程?
        节省内存资源.

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

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

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

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


- 线程之间数据是共享的.
posted @ 2019-10-27 20:31  Yugaliii  阅读(93)  评论(0)    收藏  举报