0
点赞
收藏
分享

微信扫一扫

GO语言学习笔记之并发

月半小夜曲_ 2022-04-21 阅读 94

1. 并发

  • 并行(parallel): 指在同一时刻,有多条指令在多个处理器上同时执行;借助多核CPU实现。真并行
  • 并发(concurrency):指在用以时刻,只有有一条指令执行,但多个进程指令被快速轮换执行,是的在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,通过CPU时间片轮转使多个进程快速交替的执行。假并行
    • eg:并行是两个队列同时使用两台咖啡机;并发是两个队列交替使用同一台咖啡机。
    • 由于并行是物理层面的技术,我们之研究并发。

2. 进程与线程

  • 进程并发:

    • (1)程序:编译成功的二进制文件,会占用磁盘空间。
    • (N)进程:运行起来程序,占用系统资源;由程序产生;
      • 用户内存存储在堆上。
  • 进程状态:有5种,创建态,就绪态(登台CPU分配时间片),运行态(占用CPU),阻塞态(等待除CPU外的其它资源主动放弃CPU)与终止态。

  • LWP:轻量级进程->lower weight processer;
    • Windows下可以忽略进程的概念,只谈线程,因为线程是最小的执行单位,是被系统独立调度和分派的单位。而进程只是给线程提供执行环境。
  • 线程是最小执行单位;进程是最小资源分配单位。
  • 进程同步:协同步调,规划先后顺序。在一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。
    • 同步的目的是,是为了避免数据混乱,解决时间有关的错误。
    • 线程同步机制:
      • 互斥锁mutex:建议锁,拿到锁之后,才能访问数据,没有拿到锁的线程阻塞等待,拿到锁的线程释放锁。
      • 读写锁:写独占,读共享。写锁优先级高。
举报

相关推荐

0 条评论