goroutine(协程)

一.goroutine-基本介绍

    进程和线程说明

1.进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位

2.线程是进程的一个执行实例,是程序执行的最小单元,它是比进程更小的能独立运行的基本单位。

3.一个进程可以创建和销毁多个线程,同一个进程中的多个线程可以并发执行。

4.一个程序至少有一个进程,一个进程至少有一个线程

并发和并行

1.多线程程序在单核上运行,就是并发

2.多线线程序在多核上运行,就是并行

并发:因为是在一个CPU上,比如有10个线程,每个线程执行10毫秒(进行轮询操作),从人的角度看,好像这10个线程都在执行,但是从微观上看,在某一个时间点看,其实只有一个线程在执行,这就是并发。

并行:因为是在多个CPU上(比如有10个CPU),比如有10个线程,每个线程执行10毫秒(各自在不同CPU上执行),从人的角度看,好像这10个线程都在执行,但是从微观上看,在某一个时间点看,也同时有10个线程在执行,这就是并行。

Go协程和Go主线程

1.Go主线程(有程序员直接称为线程/也可以理解为进程):在一个Go线程上,可以起多个协程,协程就是轻量级的线程

2.Go协程的特点

   有独立的栈空间

   共享程序堆空间

   调度由用户控制

   协程是轻量级的线程

案例说明:

快速入门小结:

1.主线程是一个物理线程,直接作用在CPU上的。是重量级的,非常耗费CPU资源。

2.协程是从主线程开启的,是轻量级的线程,是逻辑态。对资源消耗相对较小

3.golang的协程机制是重要的特点,可以轻松的开启上万个协程。其他编程语言的并发机制是一般基于线程的。开启过多的线程,资源耗费大,这里就突显Golang在并发上的优势了

设置Golang运行的CPU数

介绍:为了充分利用多CPU的优势,在golang程序中,设置运行的CPU数目

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老实憨厚的腾锅锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值