2

超线程可以用哪些语言实现?它只是面向对象系统的一部分还是可以在 C 中实现?

谢谢。

4

2 回答 2

7

任何支持线程的语言和运行时都将支持超线程。

超线程是一种在多个线程之间多路复用 CPU 的方法——只有一个真正的 CPU,但它对操作系统来说是两个 CPU 可见的,因此可以在其上调度两个线程。CPU 在一个线程上的任何停顿(如等待内存、长时间的 FPU 操作等)都允许 CPU 从另一个线程执行代码。

更多关于Wikipedia上的超线程的信息。

于 2009-05-08T23:30:18.953 回答
0

超线程在很大程度上与在系统中拥有更多处理器相同。即使您的语言不支持线程,仍然可以让您的程序生成另一个自身副本或生成将(如果操作系统支持它)在可用处理器上平衡的工作进程。

您需要查找您的语言的线程支持,但要注意线程很容易使您的程序复杂化,并且可能导致难以发现错误,因为代码可以异步执行。

因此,您的问题的答案是“可能,但这取决于”。

至于您的其他问题,您可以根据您的运行时和编译器支持轻松地再次在 C 中实现多个线程。例如,OpenMP 扩展http://en.wikipedia.org/wiki/OpenMP可能对您有用。

于 2011-12-05T23:32:07.480 回答