![]() |
1
3
基本上,就是这样。 但是,假设你真的想问“这会对我的程序的性能产生什么影响?”,对吧? 如果是,答案是“这取决于”。 我不确定您是否有机会使用只有一个CPU和一个内核的系统(基本上是大多数消费级IBM PC兼容计算机,直到有所谓“超线程”技术的奔腾CPU的一代),但是这些系统通常在一个“单核”上运行成百上千个OS线程(这个术语在主流中并不存在,但OK)。
另一件要考虑的事情是,你的程序不是孤立运行的:有其他程序在同一个CPU上运行,内核本身也有几个内核线程。
你可以使用像
这时,您可能想知道为什么Go运行时默认创建的线程数量与物理内核的数量一样多,以支持goroutine。 据推测,这来自一个简单的事实,即在典型的服务器端工作负载中,您的程序将是某种“主程序”。 换句话说,它的线程与线程的争用 其他进程和内核将相当低。 |
![]() |
grandmasternik · 缺少文件或方法 2 年前 |
![]() |
nvh · 无限期运行Go例程(完成后重新启动) 2 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
![]() |
kepemo2494 · 如何使用docker运行golang? 2 年前 |
![]() |
muthermutton · 为什么我的切片在追加时没有更新?[重复] 2 年前 |
![]() |
nos · 将Golang二进制文件读入切片数据,结果为零 2 年前 |
![]() |
Tono Nam · 指向同一内存位置的两个不同类型的对象 2 年前 |