LINUX.ORG.RU

Потоки в си

 , ,


0

3

Есть 2 потока. Один принимает данные, другой ждёт, когда данные придут и что-то делает. Потом опять ждёт и т.д. по кругу. Нужен красивый и простой пример с openmp или кроссплатформенной либой. На pthread сделал, а с openmp какая-то жесть, вообще не понимаю, что они там мутят.

Я могу ошибаться но OpenMP вроде как не про это. Вот если вам нужно перемножить/сложить две матриции 1Mx1M сразу на 10 ядрах то тогда OpenMP ...

zaz ★★★★
()
Ответ на: комментарий от crutch_master

Если на windows будешь собирать gcc(msys2), то там сразу есть pthreads.

Если в Visual Studio, то нужно установить в vcpkg

vcpkg install pthreads:x86-windows pthreads:x64-windows

https://github.com/Microsoft/vcpkg

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)

ещё можно сдлелать враппер или макросную развязку между виндовыми и посиксовыми потоками

mittorn ★★★★★
()

Есть 2 потока. Один принимает данные, другой ждёт, когда данные придут и что-то делает.

Итого - вам не нужны потоки.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Нужны, чтобы отсутствие данных на входе ничего не блокировало. В один поток уже делал - получилось не очень хорошо. Там скриптовый движок, данные о вводе приходится передавать через событие и код выглядит как асинхронное дерьмище. Всё блокировать до получения ввода тоже не вариант, окошко должно постоянно перерисовываться.

crutch_master ★★★★★
() автор топика
Последнее исправление: crutch_master (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Нужны,

Я процитировал ваше сообщение. Вы сами написали, что вам нужно ожидать данные, проводить расчёт и снова ожидать.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Я не расписывал, чтобы не перегружать подробностями.

crutch_master ★★★★★
() автор топика

Тебе наверное надо mpi

anonymous
()

c++ std::thread

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.