Описание тега pthread-exit

Функция pthread_exit() завершает вызывающий поток и возвращает значение через retval, которое (если поток присоединяется) доступно для другого потока в том же процессе, который вызывает pthread_join.
1 ответ

Как конвертировать * в удвоение / плавающее с pthread, pthread_exit

Мне нужно создать программу, которая рассчитывает рекурсию (для определенной последовательности). Когда я использую int и объявляю рекурсию, которая вычисляет значения без плавающих чисел (например, последовательность Фибоначчи, которая возвращает т…
20 ноя '18 в 14:31
2 ответа

Как сохранить стек потока до его выхода?

Я работаю над многопоточным проектом, и мне нужно сделать копию стека потока в какой-то момент в коде (мне нужен указатель на это). потому что мне понадобится этот указатель после выхода из этого потока (и его стек освобожден). Это также сделало бы …
31 июл '15 в 14:21
1 ответ

Вызовите присоединение дочернего pthread в основной функции

У меня есть тестовый код: #include <stdio.h> #include <unistd.h> #include <pthread.h> pthread_t th_worker, th_worker2; void * worker2(void *data) { for(int i = 0; i< 1000000; i++){ printf("thread for worker2----%d\n", i); usleep…
1 ответ

Почему pthread_exit(0) зависает в программе?

Запуск следующего кода C приводит к зависанию программы и не отвечает на сигналы (включая CTRL-C). int main() { pthread_exit(0); return 0; } Есть идеи почему? Поведение является нормальным, когда другие потоки были созданы и работают, но я хотел бы …
19 май '16 в 10:23
2 ответа

Почему pthread_exit действует как pthread_join?

Код: void *PrintHello(void *threadid) { cout<<"Hello"<<endl; sleep(3); cout<<"Still PrintHello is alive"<<endl; } int main (int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; cout<<"Calling thread:"<<t<&…
28 мар '15 в 08:19
1 ответ

Posix pthread рабочий, который работает только при необходимости

У меня есть рабочий поток, выполняющий опрос (он нацелен на libcurl, но это не имеет значения). Многие действия из приложения могут запустить рабочий поток, но если он уже запущен, новый поток создавать не следует. Новый запрос от приложения просто …
3 ответа

pthread_exit(NULL); не работает

Это мой код для создания некоторых тем. Я хочу создать 500 потоков одновременно, не более. Легко, но мой код не удался после создания 32ххх потоков. Тогда я не понимаю, почему я получаю код ошибки 11 после 32751 потоков, потому что каждый поток зако…
21 июл '16 в 16:12
2 ответа

Закрыть поток на основе значения переменной из вызывающего потока

Я использую потоки posix в C. У меня есть две темы в моей программе, thread1 и thread2. поток1 начинает поток2. thread1 поддерживает переменную var1, в зависимости от которой необходимо безопасно завершить работу thread2. thread2 вызывает много длин…
06 мар '17 в 09:17
1 ответ

Пытаясь понять, как работает pthread в C

Я пытаюсь использовать pthread в C, чтобы сравнить две строки. Идея состоит в том, чтобы увидеть, находится ли полная строка 2 в строке 1 (например, если string1 = lkajdsgl а также string2 = jd тогда у меня был бы один матч). Чего я не понимаю, так …
2 ответа

Отдельный поток не завершится, хотя он запускает pthread_exit?

Я уже несколько дней имею дело с проблемой в пуле потоков. Я пробовал все виды разных вещей, но я не могу решить эту проблему. Я сделал простую версию, которая воспроизводит проблему. Код: #include <unistd.h> #include <signal.h> #include…
1 ответ

Клиент зависает после pthread_exit() в потоке сервера в C

У меня есть сервер, на котором я работаю с несколькими клиентами. Каждый клиент, который подключается к нему, обслуживается в своем собственном потоке. Теперь, если какие-либо ошибки происходят на стороне сервера, я хочу выйти из этого потока, вызва…
16 окт '15 в 14:36
1 ответ

pthread_exit() тоже закроет открытые файлы?

Я открыл файл в потоке и завершил его с помощью процедуры pthread_exit(). Будет ли он закрывать открытые файлы тоже?
16 мар '15 в 06:23
1 ответ

Ошибка чтения возвращаемого значения из передачи указателя структуры в pthread_exit() в C

Я пытаюсь передать указатели на struct lower_hyper_id из потока в основной поток с помощью функции pthread_exit(), которая будет сравнивать и выводить значение в структуре. Тем не менее, я получаю сообщение об ошибке (ошибка сегментации), когда я пы…
2 ответа

Завершение потока с помощью pthread_exit с последующим возвратом - странный пример

Я нашел этот пример; здесь два потока threadDefault и threadCustomized завершаются использованием pthread_exit с последующим возвратом. Почему автор написал обе инструкции?
30 июн '20 в 11:06
1 ответ

Выход из потока с возвратом

У меня небольшая проблема, и я надеюсь найти кого-нибудь, кто сможет помочь. Я пытаюсь разработать библиотеку потоков в c, используя ucontext, и я разработал для этого базовые функции. Итак, теперь моя проблема в том, что я хочу рассмотреть случай, …
29 мар '20 в 05:38
0 ответов

Передача адреса целочисленной переменной в pthread_exit

Функция pthread_exit должна принимать на вход указатель void. Мне интересно, как это возможно передать адрес целочисленной переменной (например, pthread_exit(&ret1;) здесь) без выполнения преобразования приведения.
02 июл '20 в 20:53
1 ответ

terminate вызывается без активного исключения при вызове pthread_exit в обработчике ошибок сегментации

Как поживаете?Я собираюсь исправить ошибку сегментации в рабочем потоке в Ubuntu 18.04.Мой код следующий. #include <thread> #include <signal.h> #include <string.h> #include <pthread.h> #include <opencv2/opencv.hpp> void…
30 ноя '20 в 17:56
1 ответ

pthread_exit() выдает предупреждение: приведение к указателю из целого числа другого размера [-Wint-to-pointer-cast] предупреждение

Я изучал библиотеку pthread и создал простой код для умножения двух чисел, однако я не могу избавиться от этого предупреждения. Пс. Код работает нормально. #include <stdio.h> #include <pthread.h> struct numbers { int num1,num2; }; void *…
27 ноя '20 в 17:54
1 ответ

Неверное значение локальной переменной после pthread_join

Я пытаюсь суммировать целочисленный массив из 1000 элементов (где каждый элемент равен 1) с библиотекой pthread, разбивая массив на сегменты размером 10. Таким образом, для этого используются 100 потоков. Результаты этой параллельной операции ожидаю…
22 окт '20 в 07:37
1 ответ

pthread_exit () и pthread_join () не работают [дубликат]

Я не знаю, почему он не возвращает введенное мной значение. Я знаю, что это не void* arg потому что он печатает правильный номер, но я понятия не имею. КОД: #include <unistd.h> #include <stdio.h> #include <pthread.h> #include <s…
19 мар '21 в 14:57