Вопрос по posix, multithreading, semaphore, mutex – Семафоры и Mutex для синхронизации потоков и процессов

1

Меня смущает использование семафоров и мьютексов на уровне потоков и процессов. Можем ли мы использовать семфоры и мьютексы для синхронизации как потоков, так и процессов, или у нас есть разные семафоры и мьютексы как на уровне потоков, так и на уровне процессов? Мой вопрос со ссылкой на API POSIX.

Ваш Ответ

2   ответа
5

Ответ на оба вопроса - да. Вы можете создавать как мьютексы, так и семафоры как совместно используемые процессом, так и нет. Таким образом, вы можете использовать их как объекты синхронизации между процессами или между потоками, но вы должны указать, когда вы их создаете.

Конечно, вы должны создать объект синхронизации в памяти, который используется всеми контекстами, которые хотят получить к нему доступ. С потоками это тривиально, поскольку они разделяют представление о памяти. С процессами вы должны специально создать объект синхронизации в разделяемой памяти.

1

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

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

Похожие вопросы