golang_并发: 并发的介绍(简介)

并发

并行(parallel): 同一时刻,有多条指令在多个处理器上同时执行.

并发(concurrency): 同一时刻,只有一条指令执行,但多个进程被快速的轮换执行.宏观上是多个进程同时执行,微观上不是同时执行的.

  • 程序:一个公司 进程:一个程序可以有多个进程 。项目
  • 线程:进程系统资源消耗过多 ,cpu的基本执行单位,一个进程有多个线程。小组
  • 协程:一个线程有多个协程。个人
  • go程:用GO语言实现的协程-goroutine
进程并发

进程并发时会出现的问题?

问题一.系统开销比较大,占用资源比较多,开启进程数量比较少。

问题二. 在unix/linux系统下,还会产生“孤儿进程”和“僵尸进程”

线程并发

**线程同步:**线程按照预定的先后次序进行运行。

实现线程同步的方法(加锁)

​ 互斥锁:每个线程在操作资源时给资源加互斥锁,操作完解锁。谁拿到锁谁执行,拿不到锁的阻塞。

​ 读写锁:读写锁允许更高的并行性。其特性为:写独占,读共享。当既有读又有写的时候写锁优先。读写锁适合于对数据读的次数远大于写的情况

协程并发

协程最大的优势在于“轻量级”。可以轻松创建上万个而不会导致系统资源衰竭。而线程和进程通常很难超过1万个。一个线程中可以有任意多个协程。在协程中,调用一个任务就像调用一个函数一样,消耗的系统资源最少,但能达到进程、线程并发相同的效果。

函数层面的并发

Go并发

Go在语言级别支持协程,也就是说通过Go的语法就支持协程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值