Одноядерный процессор: нужен энергозависимый или синхронизированный? - PullRequest
2 голосов
/ 08 февраля 2012

В Java многопотоковые и синхронизированные многопоточности могут работать вместе и понимать друг друга.Но если вы используете многопоточность в одноядерной системе, это означает не многопоточность, а ОС просто переходит из этого потока в поток.(Итак, одна переменная просто использует ОДИН в тот момент)

Итак, я думаю, что нет необходимости использовать технику безопасного потока, такую ​​как volatile или synchronized.Это правда?

спасибо:)

Ответы [ 3 ]

4 голосов
/ 08 февраля 2012

Вы не правы. Синхронизация по-прежнему является проблемой в одноядерной системе, поскольку JRE может переключать потоки в любой точке (в том числе, когда поток находится в критической секции).

1 голос
/ 08 февраля 2012

Синхронизация важна независимо от одноядерных или многоядерных систем. Для предотвращения взаимных блокировок необходимо правильно использовать синхронизацию. Помимо предотвращения блокировок, синхронизация также важна в приложениях с графическим интерфейсом, где нам необходимо выполнять интенсивные вычисления в фоновом режиме.и периодически обновлять GUI.

1 голос
/ 08 февраля 2012

Синхронизация не зависит от того, сколько ядер.Он основан на том, сколько потоков конкурирует за общий ресурс.Когда более одного потока конкурирует, вам нужна синхронизация.

...