Языки программирования с гиперпоточностью

StackOverflow https://stackoverflow.com/questions/842233

  •  20-08-2019
  •  | 
  •  

Вопрос

На каких языках может быть реализована гиперпоточность?Является ли это только частью объектно-ориентированных систем или может быть реализовано на C?

Спасибо.

Это было полезно?

Решение

Любой язык и среда выполнения, которые поддерживают потоки, будут поддерживать гиперпоточность.

Гиперпоточность - это способ мультиплексирования процессора между несколькими потоками - существует только один реальный процессор, но он виден операционной системе как два процессора, и, таким образом, на нем могут быть запланированы два потока.Любые сбои в работе процессора в одном потоке (например, ожидание в памяти, длительные операции FPU и т.д.) позволяют процессору выполнять код из другого потока.

Более подробная информация о hyper-threading приведена на Википедия.

Другие советы

Гиперпоточность - это по большей части то же самое, что иметь больше процессоров в системе.Даже если ваш язык не поддерживает потоки, все равно возможно заставить вашу программу создать другую копию самой себя или запустить рабочие процессы, которые будут (если операционные системы поддерживают это) сбалансированы по доступным процессорам.

Вам нужно посмотреть поддержку потоков для вашего языка, но будьте осторожны, что потоки могут легко усложнить вашу программу и могут привести к труднодоступным ошибкам, поскольку код может выполняться асинхронно.

Итак, ответ на ваш вопрос таков: "возможно, но это зависит".

Что касается вашего другого вопроса, вы можете легко реализовать несколько потоков на C снова в зависимости от вашей среды выполнения и поддержки компилятора.Например, расширения OpenMP http://en.wikipedia.org/wiki/OpenMP могло бы быть полезно для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top