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