也许这是一个愚蠢的问题,但我正在努力更好地了解硬件内部工作原理......
如果一个 cpu 有多个线程并且我们有一组指令集来分配它。当我从http://www.lighterra.com/papers/basicinstructionscheduling/链接阅读它的工作原理时。它说编译器将创建一个指令依赖树,然后指令将并行运行。cpu 将如何知道依赖指令是否已完成。它会增加复杂性。
我写交流代码来看看这个
int main()
{
getchar();
putchar('a');
return 0;
}
我认为 getchar() 和 putchar() 的指令是独立的,当我没有从键盘提供输入时,应该执行 putchar('a') 的其他线程指令,并且它应该在请求输入之前显示输出。但它一直在等待输入。
提前致谢。