В C вы можете создать многопроцессное приложение с помощью fork()
, и затем вы сможете обмениваться данными с помощью FIFO-канала. Я узнал, что C++ поддерживает только многопоточные приложения, и если вы хотите использовать многопроцессорное приложение, вы должны положиться на fork()
.multi-process C++ fifo
Но в C++ проверка типов имеет решающее значение, поэтому я не могу просто передавать объекты через трубу без каких-либо рисков. Вы можете наложить на void*
и спросить sizeof
и отправить все через трубу, чтобы привести его обратно в исходный объект.
Так почему же это так плохо? Является многопроцессорной архитектурой, не используемой на C++, или есть библиотеки или лучшие способы делать что-то. Я немного искал Google, и единственное, что вы найдете, это многопоточный C++ или многопроцессорный C.
Причина, по которой требуется больше процессов, заключается в том, что я хочу, чтобы мое приложение было максимально надежным. Если мой веб-сервисный сбой, я хочу, чтобы мой основной процесс перезапустил его. Нет никакого способа сделать это многопоточным, так как вы никогда не знаете, если 1 поток не испортил память в другом потоке, поэтому, если вы получаете ошибку в одном потоке, вам нужно перезагрузить систему безопасности.
Что вы подразумеваете под «мультипроцессом». * Многопроцессорность * - это гораздо более широкий термин, включая многопоточные, многопроцессорные и SIMD (однопоточные, но одновременно обрабатывающие несколько данных). Retagged с 'ipc', что подразумевает мультипроцесс. –
Этот вопрос слишком широк. Вы указываете 'fork', затем' void * 'и' sizeof', многопоточность. – Ajay
Это, безусловно, поможет понять, что ваши «объекты» вы хотите обработать. Насколько они велики, какие данные они содержат? –