Результаты поиска по запросу "pthreads"
В системе с 24 ядрами должно быть легко столкнуться с ложными пробуждениями. (Некоторые блоггеры зашли бы так далеко, утверждая, что примерно 40% их ожиданий прерывается в этих системах. Но, безусловно, есть и другие факторы, которые следует учитывать в уравнении, что усложняет определение числа.).
вопрос не о том, действительно ли ложные пробуждения счастливы, потому что это уже обсуждалось здесь в полном объеме:Действительно ли случаются ...
Я запустил этот код, который вы опубликовали, и не получил те же результаты, что и вы. Похоже, что мой поток получения запланирован первым, и программа просто зависает: [ubuntu @ apollo: ~ / hp_threads] $ gcc -lpthread main.c && ./a.out r1 r2 r1 r2 r1 r2 r1 r2 s1 s2 ^ C
отаю над проектом и пытаюсь использоватьpthread_cond_wait() а такжеpthread_cond_signal() синхронизировать два потока. Мой код выглядит примерно так: pthread_mutex_t lock_it = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t write_it ...
для полного описания того, что необходимо сделать для создания pthreads таким образом.
у прекратить предупреждение server.cpp: 823: предупреждение: преобразование из 'void * (ClientHandler ::) () 'to' void () (Недействительный)» в вызове: pthread_create(th, NULL, (void* (*)(void*)) &ClientHandler::handle, (void ...
и если вы создаете специальный тип сообщения очереди, это позволяет легко определить потоки, когда следует завершить работу.
я есть очередь заданий, и я хочу создать пул из 4 потоков, куда я могу добавить свои задания. То, что я застрял в том, как сделать потоки и удерживать их, пока нет работы. JOB QUEUE | job1 | job2 | job3 | job4 | .. THREAD POOL | thread1 | ...
для получения дополнительной информации.
ного запутался в том, как объявить рекурсивный мьютекс с помощью pthread. То, что я пытаюсь сделать, это иметь только один поток за раз, чтобы иметь возможность выполнять фрагмент кода (включая функции), но после скептицизма я понял, что ...
с кодом, который добавляет / удаляет переменную условия в / из глобального связанного списка. Защитите связанный список с помощью мьютекса.
отрим следующий исходный код, полностью совместимый с POSIX: #include <stdio.h> #include <limits.h> #include <stdint.h> #include <stdlib.h> #include <pthread.h> #include <sys/time.h> int main (int argc, char ** argv) { pthread_cond_t c; ...
Когда использовать переменные условия pthread?
Этот вопрос: похоже, что условная переменная работает только в том случае, если pthread_cond_wait вызывается до того, как другой поток вызывает pthread_cond_notify. Если перед ожиданием происходит какое-либо уведомление, ожидание застрянет. Мой ...
Я не думаю, что проблема в том, что ОП не присоединяется к потокам. Проблема связана с количеством памяти, используемой при создании потоков.
граммирую что-то на C, что создает много Pthreads в Linux на 256-мегабайтной системе. У меня обычно + 200Мб бесплатно. Когда я запускаю программу с небольшим количеством потоков, она работает, но как только я создаю около 100 потоков, это дает ...
Это не важно Вы все еще можете ужасно потерпеть неудачу десятками способов. Например, что произойдет, если поток, назначенный заданию, увидит запись в флаг, но не саму запись? Поток будет выполнять неправильную работу полностью.
те представим, что у меня есть несколько рабочих потоков, таких как: while (1) { do_something(); if (flag_isset()) do_something_else(); }У нас есть пара вспомогательных функций для проверки и установки флага: void flag_set() { global_flag = 1; ...
Спасибо за совет, и спасибо за ответ.
ользую библиотеку pthread в Linux. Я назначаю строку в потоке A, а затем пытаюсь напечатать строку в потоке B. Однако строка просто печатается пустой (я убедился, что она работает в потоке A). Примечание. Строка находится внутри объекта, ...