powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вытесняющая многозадачность и многопоточность
12 сообщений из 12, страница 1 из 1
Вытесняющая многозадачность и многопоточность
    #39415125
Rock Amadeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее, в вытесняющей многозадачности вообще синхронизация потоков не нужна, т. к. по определению не возникает состоянии конкуренции за ресурсы между потоками? Ведь в одно и то же время только один поток выполняется.

Всё зло от многопроцессорности, да?
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415141
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь о синхронизации доступа к разделяемым ресурсам, то она нужна независимо от количества процов.

Например надо прочитать глобальную переменную, изменить и записать обратно. Даже с одним процом поток может быть прерван после "прочитать" и запущен другой поток, который внесет свои изменения.
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415347
myaucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше концепции однопоточного апартамента никто еще ничего не придумал
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415533
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rock AmadeusПо идее, в вытесняющей многозадачности вообще синхронизация потоков не нужна
Ты путаешь вытесняющую многозадачность с кооперативной. При вытесняющей код не может предсказать в каком месте его выполнение прервётся, поскольку кончился квант времени.
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415658
Rock Amadeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovRock AmadeusПо идее, в вытесняющей многозадачности вообще синхронизация потоков не нужна
Ты путаешь вытесняющую многозадачность с кооперативной. При вытесняющей код не может предсказать в каком месте его выполнение прервётся, поскольку кончился квант времени.
Я имею ввиду такую многозадачность, при которой у любых потоков одной программы не может возникнуть состояния конкуренции за данные. Если взять одно ядно без гипертрединга, то сколько потоков на нём ни запускай, а в одно и то же время будет выполняться только один поток. Так? Т. е. при таких условиях можно писать многопоточный код не заботясь о блокировках потоков, так?
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415659
Rock Amadeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rock AmadeusВсё зло от многопроцессорности, да?
Правильно читать - от многоядерности и гипертрединга.
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415679
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rock AmadeusRock AmadeusВсё зло от многопроцессорности, да?
Правильно читать - от многоядерности и гипертрединга.
бредятина.
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415689
Rock Amadeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилRock Amadeusпропущено...

Правильно читать - от многоядерности и гипертрединга.
бредятина.
Т. е. на одном ядре без гипертрединга может возникнуть конкуренция за данные в многопоточном приложении?
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415692
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rock AmadeusТ. е. на одном ядре без гипертрединга может возникнуть конкуренция за данные в многопоточном приложении?
да.
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415702
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rock Amadeus,

кстати, задолго до появления гипертрединговых и многоядерных микропроцессоров
(и вообще до появления микропроцессоров) существовали многопроцессорные системы
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415759
Rock Amadeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилRock Amadeus,

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

А... Или погоди... Вот в чём дело. Кажется, я понял. Скажем, в один квант времени начал исполняться один поток, но он не закончил за этот квант выполнять какой-то блок кода, где находятся данные, за которые может быть конкуренция. В другой квант времени начал выполняться другой поток по тому же самому блоку кода, и он начал менять данные, которые юзал прежний поток. Вот тогда да - в следующий свой квант времени первый поток получит изменённые данные.

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

Вобщем, понятно, я был неправ.
...
Рейтинг: 0 / 0
Вытесняющая многозадачность и многопоточность
    #39415822
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rock Amadeus...в один квант времени...вот если бы была гарантия...

если вообще глобально - то вы правы = одна задача на голом железе => нет проблем.
Но...(куда же без них то! :) )

1) Сам софт, на любой железке, стараются разделить логически и физически. Более того - изолировать. Более того - иметь возможность параллелить разработку. (см. понимание ядро, процесс, программа).
2) Существуют вещи напрямую или косвенно уходящие в обработку внешних источников сигналов для железки. как правило это система прерываний. (см. драйвера, обработка прерываний, реал-тайм определение)

Посему не важно сколько у Вас ядер или алу. Если есть вероятность асинхронности - то обязательно(!) надо позаботиться о синхронизации доступа к разделяемым данным.

удачи Вам
(круглый)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вытесняющая многозадачность и многопоточность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]