Я работаю с OpenCV, библиотекой обработки изображений с открытым исходным кодом, и из-за сложностей в моем алгоритме мне нужно использовать несколько потоков для обработки видео.C++ 98 и threading
Как многопоточность выполняется на C++ 98? Я знаю, что в C++ 11 есть встроенная библиотека поддержки для потоковой передачи (std :: thread), но у моей платформы (MSVC++ 2010) этого нет. Также я читал о библиотеке Boost, которая является расширением общего назначения для C++ STL, имеет методы многопоточности. Я также знаю с поддержкой MSDN (windows.h). Я могу создавать и управлять потоками для приложений Windows. Наконец, я узнал, что решение Qt library, кросс-платформенное графическое решение, поддерживает потоковую обработку.
Есть ли наивный способ (не имея сторонних библиотек) для создания кросс-платформенного многопоточного приложения?
У меня самая последняя версия 2.4.6, благодаря которой я только что узнал о том, что opencv имеет поддержку нисходящего потока. Однако, подобно потоку с C#, мне нужна операция более высокого уровня. Например, один поток должен постоянно загружать кадры из видео, другой цикл должен вызывать функцию обработки, вводящую кадр. – baci
Тогда, действительно, то, что вы ищете, вероятно, зависит от платформы, потому что оно каким-то образом связано с временем выполнения ваше приложение. По-видимому, потоки POSIX, Boost или Qt должны делать правильную работу. Но вы не можете избежать введения внешних зависимостей и одновременно быть межплатформенными. – sansuiso