百科问答小站 logo
百科问答小站 font logo



关于go语言协程调度的一个问题(具体请看问题描述)? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

Goroutine 是一种协作式多任务,而不是抢占式多任务。

一个Goroutine如果一直在计算,比如死循环,那么就会一直占用当前线程,直到它结束或者主动放弃。

但是Go系统里有很多个线程,部分被占用还会新开线程,不会让其它 Goroutine饿死。

你把GOMAXPROCS限制成 1 是你自己的问题,Go只是语言和运行库,它不是OS,不能强制Goroutine放弃CPU。

即使你用普通C++写普通多线程,如果你把某个线程的优先级设置成实时,如果系统只有一颗CPU核的话,其它线程也会统统饿死。




  

相关话题

  用GO重写Linux可行吗? 
  怎么看 Go 语言依赖需要 Git 仓库可读权限? 
  个人独立开发游戏(已决心入坑,求教育)都有哪些需要提前规避的? 
  如何看待go语言泛型的最新设计? 
  用GO重写Linux可行吗? 
  golang,告警业务,每个告警源都有不同的分发频率,告警源可能新增or删除,该如何设计? 
  如何看待七牛 CEO 许式伟开源的 Cerl? 
  后端领域,写java的程序员普遍比写Python和go的程序员水平低吗? 
  golang如何令程序在go关键字修饰的方法(函数) 执行完成后 再结束? 
  怎么看 Go 语言依赖需要 Git 仓库可读权限? 

前一个讨论
在中国,战车是什么时候开始退出冷兵器战争的,以及其原因是什么?
下一个讨论
如果集合全世界的力量,造一座山,这座山能造多高?





© 2025-03-26 - tinynew.org. All Rights Reserved.
© 2025-03-26 - tinynew.org. 保留所有权利