【发布时间】:2009-05-08 23:26:52
【问题描述】:
超线程可以用哪些语言实现?它只是面向对象系统的一部分还是可以在 C 中实现?
谢谢。
【问题讨论】:
标签: hyperthreading
超线程可以用哪些语言实现?它只是面向对象系统的一部分还是可以在 C 中实现?
谢谢。
【问题讨论】:
标签: hyperthreading
任何支持线程的语言和运行时都将支持超线程。
超线程是一种在多个线程之间多路复用 CPU 的方法 - 只有一个真正的 CPU,但它对操作系统来说是两个 CPU 可见的,因此可以在其上调度两个线程。 CPU 在一个线程上的任何停顿(如等待内存、长时间的 FPU 操作等)都允许 CPU 从另一个线程执行代码。
有关超线程的更多信息,请访问Wikipedia。
【讨论】:
超线程在很大程度上与在系统中拥有更多处理器相同。即使您的语言不支持线程,仍然可以让您的程序生成另一个自身副本或生成工作进程,这些进程将(如果操作系统支持)在可用处理器上保持平衡。
您需要查找您的语言的线程支持,但要注意线程很容易使您的程序复杂化,并且可能导致难以发现错误,因为代码可以异步执行。
所以您的问题的答案是“可能,但这取决于”。
至于您的其他问题,您可以根据您的运行时和编译器支持轻松地再次在 C 中实现多个线程。例如,OpenMP 扩展 http://en.wikipedia.org/wiki/OpenMP 可能对您有用。
【讨论】: