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