holulu
2015-05-12 15:37:42 +08:00
多核优化只能说是一种程序运作方式,由程序本身决定的。无论使用什么语言都可以写出使用单核或多核的程序,最终怎么跑还是得看程序开发者怎么写。
现在好像也没有什么技术能够将单核程序自动使用多核来处理,毕竟这个和具体的程序逻辑有关,如果这个自动判断的方法出现问题,那程序的执行就混乱了。
要利用多核,可以通过开多进程或多线程处理,这些都得程序开发者在程序中使用了相关的技术才能用上多核。而像协程和类似的轻量级进程或线程的并发机制也只是省去了开发者自行调度进程或线程的工夫,但程序设计上还是得真正利用上这些并发机制才能达到利用多核的效果。
所以无论编程语言有多好的并发机制,如果程序本身没有用上,那程序的主要业务逻辑也只能跑在单核上。对于有 GC 和自动异步 IO 的语言来说(如 Golang),如果程序逻辑没有用上这些并发机制(如 Golang 的 goroutine),则程序的主要逻辑还是跑在单核上,或许其他的部分像 GC 和 IO 操作则会跑在其他核上,但这对于多核的利用是有限的。
所以最后还得程序本身的逻辑决定了多核的利用。