完整地重写了我的问题,希望可以使其更清楚。
我有2个程序,一个用Java编写,一个用Go编写,同时在具有4个内核的Windows机器上运行。
每个程序同时运行8个无限循环。在Java中,这将在8个线程中完成,而在Go中将在8个goroutines中完成。
如果两个程序同时运行,那么Java程序不会首先完成,因为它将获得更多的CPU时间,因为只有线程分配了CPU时间,而Java有8个线程,而Go的是4个?
为简单起见,我们假设计算机上没有运行其他任何东西(包括内置Java和Go线程,例如GC等),并且所有Java线程都设置为与GO线程相同的优先级。