Есть ли смысл в многопоточности? - PullRequest
7 голосов
/ 05 августа 2010

Я не хочу делать это субъективным ...

Если ввод-вывод и другие узкие места, связанные с вводом / выводом, не представляют интереса, то нужно ли нам писать многопоточный код? Теоретически однопоточный код будет работать лучше, поскольку он получит все циклы процессора. Правильно?

Будут ли JavaScript или ActionScript лучше, если бы они были многопоточными?

Я просто пытаюсь понять реальную потребность в многопоточности.

Ответы [ 11 ]

0 голосов
/ 08 августа 2010

Большинство ответов здесь делают вывод multicore => multithreading выглядеть неизбежным.Однако есть и другой способ использования нескольких процессоров - multi-processing.Особенно в Linux, где, AFAIK, потоки реализованы как просто процессы, возможно, с некоторыми ограничениями, а процессы дешевы в отличие от Windows, есть веские причины избегать многопоточности.Итак, здесь есть проблемы с архитектурой программного обеспечения, которыми нельзя пренебрегать.

Конечно, если параллельные строки выполнения (потоки или процессы) должны работать с общими данными, потоки имеют преимущество.Но это также главная причина головной боли с потоками.Может ли такая программа быть спроектирована таким образом, чтобы части были как можно более независимыми и независимыми, чтобы мы могли использовать процессы?Опять же, проблема архитектуры программного обеспечения.

Я бы предположил, что многопоточность сегодня - это то, чем было управление памятью во времена C:

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

Наконец, вы можете найти эту статью интересно (перейдите по этой первой ссылке на странице).Я признаю, что я прочитал только реферат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...