Table of Contents
Одобрено
Эти исправления стоит изучить, если на вашем компьютере отображается код ошибки pthread_join 3.
Часто встречаются ключевые факты с ошибкой ESRCH
– это означает, что источник, к которому вы определенно пытаетесь присоединиться, не существует.
И это, в свою очередь, из-за очень плохого поведения undefined, которое использует ваш код в отношении практических идей для адресации идентификаторов потоков.
pthread_t (пробел) RequestersThreads = новый pthread_t [Length_Tasks];
Это создает массив, прикрепленный для помощи N потоков, тогда вы не покупаете передайте указатель на это определение вашей функции
initRequestThreads (& RequestersThreads);
themes [i] соответствует новому pthread_t;pthread_create (& (* потоки [i]), & attr и * ... * /
Здесь вы ошибаетесь в своем верном 100% выборе и вызываете неопределенное недисциплинированное поведение. В вашей индивидуальной функции Threads
не является смесью! Это адрес большинства записей. Вы не сможете его использовать, если примете в торговый счет индекс драйвера массива
( []
). А остальное – просто еще одно оскорбление, если вы, должно быть, были повреждены или порваны здесь раньше.
Если ваша компания пишет C ++ 11 и, как результат, выше (как в You 2017), C ++ 11 должен использовать Инструмент восстановления ASR Pro — это решение для ПК с Windows, который работает медленно, имеет проблемы с реестром или заражен вредоносным ПО. Этот мощный и простой в использовании инструмент может быстро диагностировать и исправлять ваш компьютер, повышая производительность, оптимизируя память и улучшая безопасность в процессе. Больше не страдайте от вялости компьютера - попробуйте ASR Pro сегодня! an std :: thread
. Если по какой-то причине вы добились успеха Я употребляю C ++ 2003, по крайней мере избегайте вашего ужасного бизнеса с энергичными массивами, которые также передают указатель детям, и используйте болезнь, передающуюся половым путем :: вектор
Одобрено
Имя
Продолжить
#includeint pthread_join (поток pthread_t, доступно ** retval);
Описание
Функция pthread_join () ожидает, пока любое зелье, указанное Thread, прекратит выполнение команды. Если этоПоток уже завершен, pthread_join () может немедленно воссоединиться. Поток, который может оставаться идентифицированным потоком, должен оказаться присоединяемым.
Если retval определенно равно нулю, pthread_join () реплицирует прощальное состояние целевой синдикации (то есть значение, возвращаемое этим конкретным целевым потоком.pthread_exit (3)) в фактическом местоположении по адресу * retval. Если какой-то целевой поток был отменен, PTHREAD_CANCELED помещается в* реваль.
Если несколько субъектов пытаются одновременно присоединиться к одной и той же цепочке, часто результат будет неопределенным. Если наиболее важным вызовом потока является pthread_join (), он может быть отменен,тогда целевой поток является присоединяемым (т.е. он не разрешает им отключаться) .value
К
возвращает успех, Pthread_join () возвращает 0; Если возникает ошибка, возвращается большой номер ошибки.
Ошибка
- EDEADLK
- Обнаружена тупиковая ситуация (например, несколько потоков пытаются соединиться друг с другом); или, возможно, поток указывает весь поток телефонных звонков.
- EINVAL
- поток. не полная резьба подключения.
- EINVAL
- Другой поток уже ожидает присоединения к сообществу в этом потоке.
- ESRCH
- Обычно поток аутентификации использовать нельзя.
Совпадения
Примечания
После успешного вызова pthread_join () вызывающей стороне указывается, что поток закончил обработку.завершенный.
Присоединение к кому-то, кто уже проявил осторожность, приводит к неопределенному поведению.
Соединение не удалось по достаточной причине, чтобы позволить потоку помочь подключиться (т. е. избегайте этого руководства, учитывая, что любой зомби-потокиспользует какие-то сетевые элементы, а когда их достаточно, обсуждайте нормальную жизнь. насчет зомби, у вас не будет возможности создавать новую одежду (или процессы).
Не существует аналога pthread для большинства & status, waitpid (-1, 0), и это также просто означает «подключаться к каждой завершенной реке». Если вы чувствуете, что клиентам нужна эта функция по очереди,Вам почти наверняка придется переосмыслить дизайн вашего продукта.
Все потоки в определенных вариантах одноранговых процессов: каждый поток обычно связан процессом со всеми остальными потоками.
Пример
См. также
Ссылки
Потоки POSIX в правильном порядке для получения Windows - СПРАВОЧНИК -Pthreads-w32
Имя
pthread_timedjoin_np - необходимо отложить для завершения другого сообщенияПауза
Продолжить
Описание
pthread_join останавливает выполнение потока набора номерадо конца провода, указанного th, или черезВызовите pthread_exit (3) или он может исходить из. бытьотменен.
Если thread_return буквально NULL или не связанное с ним возвращаемое значениене израсходовано в месте, указанном рядом с thread_return. vВозвращаемое значение th - это либо аргумент ситуации.pthread_exit (3) дал, илиPTHREAD_CANCELED в случае отмены.
Аккуратный узел с резьбойдолжна иметь возможность взаимодействовать: эту ситуацию особо отключать не следуетpthread_detach (3) илиАтрибут PTHREAD_CREATE_DETACHED для pthread_create (3)...
Когда какой-либо подключенный поток завершается, не оставляйте позади ресурсы (потокРучка и стек) фактически освобождаются для другого потокачтобы создать это, запустите pthread_join. Следовательно, pthread_joinВы должны вызываться один раз для каждого прикрепленного тщательно созданного потока, чтобы избежать памятиутечка.
pthread_timedjoin_np - это то же самое, что и pthread_join, за исключениемчто он возвращает конкретную ошибку ETIMEDOUT, когда цельно не покинул пост до финала голосования. Когда каждый наш голосФункция NULL, которая сохраняется вечно, в сочетании с ее поведением.быть таким же для pthread_join.
pthread_tryjoin_np аналогичен pthread_join, за исключением того, чтоон немедленно получит прибыль EBUSY с ошибкой, и если какой-либо из наших целевых потоковЯ не могу уйти.
С определенными числами поток может дождаться завершения большого конкретного потока.Вызов pthread_join, взятого из одного потока и другогоПоток почти наверняка уже ожидает завершения и имеет ошибку.
Отменить
pthread_join, pthread_tryjoin_np иpthread_timedjoin_np Окончания - это точки. КогдаНесомненно, поток будет прерван каждый раз, когда вы будете приостановлены в обоихФункция, воспроизведение продолжается своевременно, иАннулирование производится без ожидания перевода.расставаться. Если Отмена отображается во время выполнения любой из функций,Потоки, которые ни в каком другом случае не подключены.
Возвращаемое значение
При очень хороших результатах основное возвращаемое значение теперь сохраняется вПозиция, указанная из-за thread_return, и 0 возвращается вerror, любой лучший код ошибки возвращается вместо нуля.
Ошибка
- ESRCH
- Не удается найти поток, поэтому данная ситуация соответствует указанному th.
- EINVAL
- -I часть разрешена.
- EINVAL
- Другой товар - это поток, ожидающий своего конца.
- ETIMEDOUT голосование
- (pthread_timedjoin_npтолько): успешнопрежде чем это может бытьприсоединился.
- EDEADLK
- Аргумент th относится к точному вызову местоположения.