В настоящее время я программирую приложение, которое управляет параллельным рендерингом на нескольких компьютерах. Для этого в моем серверном приложении есть пул потоков, который управляет TCP-соединениями, по одному потоку на каждый вопрос. Я хотел бы использовать одну и ту же переменную условия в каждом потоке TCP, чтобы предупредить другой поток, если один из потоков сети получил данные.
Проблема: чтобы использовать функцию signal
в API POSIX, я должен использовать мьютекс. Это означает, что если 2 сетевых потока получают данные одновременно, им придется ждать освобождения мьютекса, чтобы продолжить выполнение.
Реально, будет ли использование этой условной переменной действительно замедлять мой код? Я также могу, если не хочу его использовать, создать в другом потоке (который вызывает wait
для условной переменной) инструкцию while, которая зацикливается, чтобы увидеть, получили ли мои сетевые потоки что-то.
Большое спасибо:)