21 条回复  ·  2269 次点击
foool 初学 3 天前
"为何现在多核,不用并行,要用并发, 为啥程序语言上并发比比并行说的多?" 你这两个问题前提都错了。
forgottenPerson 楼主 初学 3 天前
@leonshaw 是的,但是想不通的是,比如你有 8 个逻辑核,4 个物理核,我有 8 个 goroutine,每个 goroutine 执行一个任务,每个逻辑核执行 1 个 goroutine ,这不是并行吗,它的行为我如何预测,预测我不就涉及并行了。
forgottenPerson 楼主 初学 3 天前
@foool 那老哥,正确的表述应该是什么
mumbler 小成 3 天前
我猜你的意思是多线程和多进程区别吧,多线程是自己管理线程之间的调度,多进程是操作系统来管理进程之间的调度 这个问题,你跟大模型聊过吗,聊一会就清晰了吧
minami 小成 3 天前
@forgottenPerson #4 是个锤子,你到底想讨论什么层级的并行并发,不同层级上的 task 完全是不同的含义。就单纯并行和并发两个词的区别,你看看 StackOverflow 的高赞就知道了 https://stackoverflow.com/questions/1050222/what-is-the-difference-between-concurrency-and-parallelism
leonshaw 小成 3 天前
@forgottenPerson 如果恰好被 Go runtime 和操作系统调度到几个核上同时运行就是并行。一般大家更关心系统能并发处理的任务数,而不是并行数。
hefish 小成 3 天前
哈哈哈哈哈哈。。。。
forgottenPerson 楼主 初学 3 天前
@leonshaw 但是老哥,那你的言外之意不就是 go 运行时和操作系统调度器把协程调度到多个核上是个不常见的情况吗,但是问题来,了如果调度到多核这种情况不是普遍现象,而是恰好,那我其他的核不是浪费了,性能不是损失了吗
wy315700 小成 3 天前
@forgottenPerson #17 如果想要精准调用多核进行并行操作。可以手动绑定核心的啊。 https://www.duguying.net/article/set-cpu-affinity-binding-for-golang-program
YsHaNg 小成 3 天前
那你去读科学计算 openmp 文档不就满眼并行了 你不去看==人不说?
返回顶部