Вопросы с тегом «pthreads»

Pthreads (POSIX Threads) - это стандартизированный API на основе C для создания потоков и управления ими. В настоящее время он определен в стандарте POSIX.1-2008 (IEEE Std 1003.1, издание 2013 г. / The Open Group Base Specifications Issue 7).

188
cmake и libpthread

Я бегу RHEL 5.1и использую gcc. Как мне сказать cmakeдобавить -pthreadв компиляцию и

182
Почему функции условных переменных pthreads требуют мьютекса?

Я читаю на pthread.h; функции, связанные с условной переменной (например pthread_cond_wait(3)), требуют мьютекса в качестве аргумента. Зачем? Насколько я могу судить, я буду создавать мьютекс просто использовать в качестве этого аргумента? Что должен делать этот...

154
Вальгринд обнаружил утечку

Все функции, упомянутые в этом блоке, являются библиотечными функциями. Как я могу исправить эту утечку памяти? Он указан в категории « Все еще достижимо ». (Есть еще 4, которые очень похожи, но разных размеров) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 at 0x4004F1B: calloc...

145
Почему pthread_cond_wait имеет ложные пробуждения?

Чтобы процитировать man страницу: При использовании условных переменных всегда существует логический предикат, включающий общие переменные, связанные с каждым условным ожиданием, которое истинно, если поток должен продолжить. Могут возникнуть ложные пробуждения от функций pthread_cond_timedwait ()...

143
Значение флага -pthread при компиляции

В различных многопоточных проектах C и C ++ я видел, как этот -pthreadфлаг применялся как на этапе компиляции, так и на этапе компоновки, в то время как другие не использовали его вообще и просто переходили -lpthreadна этап компоновки. Есть ли опасность не компилировать и не связываться с...

129
mingw-w64 потоки: posix против win32

Я устанавливаю mingw-w64 в Windows, и есть два варианта: потоки win32 и потоки posix. Я знаю, в чем разница между потоками win32 и pthreads, но я не понимаю, в чем разница между этими двумя вариантами. Я сомневаюсь, что если я выберу потоки posix, это помешает мне вызывать функции WinAPI, такие как...

96
Несколько аргументов функции, вызываемой pthread_create ()?

Мне нужно передать несколько аргументов функции, которую я хотел бы вызвать в отдельном потоке. Я читал, что типичный способ сделать это - определить структуру, передать функции указатель на нее и разыменовать ее для аргументов. Однако я не могу заставить это работать: #include <stdio.h>...

93
Что такое блокировка реентера и концепция в целом?

Я всегда путаюсь. Может ли кто-нибудь объяснить, что означает реентерабельность в разных контекстах? И почему вы хотите использовать реентерабельность и не реентерабельность? Скажем, примитивы блокировки pthread (posix), являются ли они реентерабельными или нет? Каких подводных камней следует...

91
PTHREAD_MUTEX_INITIALIZER против pthread_mutex_init (& мьютекс, параметр)

Есть ли разница между pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Или pthread_mutex_t lock; pthread_mutex_init ( &lock, NULL); Достаточно ли я в безопасности, если использую только первый метод? ПРИМЕЧАНИЕ. Мой вопрос в основном относится к очень маленьким программам, где самое большее,...

86
функция pthread из класса

Скажем, у меня есть такой класс, как class c { // ... void *print(void *){ cout << "Hello"; } } И тогда у меня есть вектор c vector<c> classes; pthread_t t1; classes.push_back(c()); classes.push_back(c()); Теперь я хочу создать тему на c.print(); И следующее дает мне проблему ниже:...

85
Вызов pthread_cond_signal без блокировки мьютекса

Я где-то читал, что мы должны заблокировать мьютекс перед вызовом pthread_cond_signal и разблокировать мьютекс после его вызова: Подпрограмма pthread_cond_signal () используется для сигнализации (или пробуждения) другого потока, который ожидает переменной условия. Он должен вызываться после того,...

81
Потоки и сигналы POSIX

Я пытался понять тонкости взаимодействия потоков POSIX и сигналов POSIX. В частности, меня интересуют: Как лучше всего контролировать, в какой поток доставляется сигнал (при условии, что это не фатально)? Как лучше всего сообщить другому потоку (который действительно может быть занят), что сигнал...