Я использую mutlithreading 'first time' для сетевого приложения, мой вопрос - две связанные части, Если я представляю, например, кучу сообщений в udp с классами (каждое сообщение класса), было бы хорошей практикой делать экземпляры таких классов глобальными, чтобы отправлять их в разных потоках, или лучший подход заключается в использовании структуры, содержащей экземпляр класса, и всю информацию о сокетах в качестве ссылки внутри этой структуры (затем используйте Pthread_create)Многопоточные и глобальные экземпляры классов?
Я считаю что в первом варианте необходимо соблюдать большую осторожность, чтобы избежать одновременного доступа к данным (используйте pthread_mutex)
, пожалуйста, предложите, как бы вы приблизились к этой проблеме.
Я действительно был бы признателен thehelp
Большое спасибо
Вам не нужно использовать потоки для сетевого программирования. Используйте 'select()' или эквивалент вашей платформы. Или 'libev'. –
Если вы идете на C++ 11 или c11, и ваш компилятор поддерживает потоки, вы должны использовать это вместо pthreads. – didierc
Избегайте ситуаций, когда многие потоки должны делиться одним значением (и таким образом синхронизировать его использование). – didierc