Dessa korrigeringar är bra att läsa om din datorprojektor visar pthread_join felkod 3.

Det finns ofta ESRCH felanvisningar – detta betyder att jag skulle säga att strömmen du definitivt försöker ansluta inte existerar.

Och detta är på grund av det oläsliga odefinierade beteendet som din kod skulle använda sig av när det gäller praktiska idéer för att hantera tråd-ID:n.

  pthread_t 1 . RequestersThreads = new pthread_t [Length_Tasks]; 

Detta skapar en array som är kopplad till N trådar, sedan skickar du i frånvaro av tvivel en pekare till de som är inställda på din funktion

  initRequestThreads (& RequestersThreads); 
  kläder [i] motsvarar den mycket nya pthread_t;pthread_create (& (* trådar [i]), & attr per * ... * / 

Det är här du skruvar upp ditt 100% val och resultatet odefinierat beteende. I din individuella funktion är Trådar inte en blandning! Detta är adressen till de flesta tabeller. Du kommer inte att kunna komma åt det direkt om du tar hänsyn till indexet för varyoperatorn ( [] ). Och resten är bara vilken annan förolämpning som helst om du måste ha blivit skadad här tidigare.

Om ditt företags företag skriver C ++ tretton och högre (som i You 2017), bör C ++ 11 fungera med std :: tråd . Om du av någon anledning har lyckats jag har använt C ++ 2003, avsluta åtminstone din hemska verksamhet med livliga arrayer som skickar en pekare till dem också, och använd sexuellt överförbar sjukdom :: vektor
precis som en prestandaparameter för din personliga funktion.

Namn

Återuppta

 #include  int pthread_join (pthread_t försiktigt tråd, tom ** retval); 

Beskrivning

pthread_join felprocedur 3

Funktionen pthread_join () väntar på drycken som specificeras av Thread för att avbryta kommandot. Om det härFörbindelsen har redan upphört, pthread_join () kan återkomma omedelbart. En ström som har potential att identifieras av en ström kan verkligen anslutas.

Om återställningen inte är noll, replikerar pthread_join () det faktiska utgångstillståndet för mål-e-boken (det vill säga värdet som returneras när den specifika måltråden.pthread_exit (3)) varje vår plats vid * retval. Om målströmmen har tagits bort placeras PTHREAD_CANCELED i*reval.

Om flera ämnen försöker ansluta sig till den viktigaste samma kedjan vid samma tid, kommer resultatet att vara odefinierat. Om trådanropet pthread_join () eventuellt kan avbrytas,då är måltråden bokstavligen sammanfogbar (dvs. den bestämmer sig inte för att koppla bort) .value

Till

Returnerar framgång, Pthread_join () Returnerar till 0; Om ett fel uppstår returneras ett stort felnummer.

Fel

EDEADLK
Dödläge upptäckt (till exempel försöker flera trådar utan tvekan ansluta till någon annan); eller tråd anger hela telefonens uppringningstråd.
EINVAL
stream. verkligen inte perfekt anslutningstråd.
EINVAL
En annan tråd väntar redan på att den ska gå med i denna tråd.
ESRCH
Vanligtvis verkar autentiseringstråden inte hittas.

Matchningar

Anteckningar

Efter ett lyckat e-postmeddelande till pthread_join (), kan den som ringer vara säker på att tråden verkligen har bearbetats.avslutad.

Att ansluta sig till någon som utan tvekan har gått med med omsorg resulterar i odefinierat beteende.

Anslutningen misslyckades av en tillräcklig anledning för att tillåta den noggranna tråden att ansluta (dvs undvik den här handboken eftersom någon zombietrådanvänder vissa organisationsresurser, och när det pratas tillräckligt om zombies kommer du inte att hinna skapa nya plagg (eller processer).

Det finns ingen pthread-analog som har att göra med & status, waitpid (-1, 0), som vanligtvis helt enkelt betyder "anslut med hänsyn till varje avslutad stream". Om du känner dig lika behöver du den här funktionen under hela tur,Du kommer förmodligen behöva tänka om hela din objektdesign.

Alla trådar i definitivt säkra typer av peer-to-peer-processer: varje bindning är associerad av en process tack vare alla andra trådar.

Exempel

Se även

Referenser

POSIX-strömmar i korrekt transaktion för Windows - REFERENS -Pthreads-w32

Namn

pthread_timedjoin_np - kommer att behöva vänta på ett annat meddelande för att slutföraPaus

Återuppta

Beskrivning

pthread_join avbryter körningen av karriärtrådentills slutet av anslutningen indikeras av th, eller genomRing pthread_exit (3) så kan den komma kl. varainställt.

Om thread_return bokstavligen är NULL och inte dess associerade go-värdesparas på den plats som pekas med av thread_return. vReturvärdet för th är antingen det argument som enheten görpthread_exit (3) gav, ellerPTHREAD_CANCELED inom den avbrutna.

Snygg gängad knutska kunna ansluta: denna situation ska inte visa sig vara frånkoppladpthread_detach (3) ellerPTHREAD_CREATE_DETACHED attribut till pthread_create(3)...

pthread_join fel datorkod 3

När någon ansluten tråd dödar, försök att inte glömma resurser (trådHandtag i kombination med stack) frigörs faktiskt för varannan trådför att göra detta, kör pthread_join. Därav pthread_joinmåste anropas en gång för varje känslomässigt fäst vid tråd skapad för att undvika minneen flykt.

pthread_timedjoin_np är samma gång pthread_join, förutomatt den returnerar ett visst ETIMEDOUT-fel när det specifika målet ärlämnade inte posten före avslutad omröstning. När specifik röstEn NULL-funktion som kvarstår utan slut, och därav dess beteendevara den vanliga som pthread_join.

pthread_tryjoin_np är vanligtvis detsamma som pthread_join, förutom attdet borde returnera EBUSY omedelbart med ett fantastiskt fel om någon av våra trådarJag kan inte lämna.

Med ett exakt nummer kan en tråd vänta med avseende på en specifik tråd för att avslutas.Anropar pthread_join orsakat av en tråd och en annanDen försiktiga tråden väntar redan på slutförande och ger dessutom ett fel.

Avbryt

pthread_join, pthread_tryjoin_np ochpthread_timedjoin_np Slut är frågor. NärUtan tvekan kommer tråden att störas när den är upphängd i bådaFunktion, uppspelning kvarstår omedelbart, ochAvbokning görs utan att vänta på översättningens syfte.bryta upp. Om Avbryt visas medan någon av funktionerna ska pågå,Strömmar som inte är som vanligt anslutna.

Returvärde

Vid framgång lagras den huvudsakliga avkastningsgraden iPositionen pekade upp till av thread_return och 0 går tillbaka tillfel, den bästa felkoden som returneras är utan tvekan inte noll.

Fel

ESRCH
Streamen kan inte hittas, därför matchar den den angivna th.
EINVAL
-I filial är tillåtet.
EINVAL
Den andra typen av är en ström som förvisso redan väntar på sitt slut.
ETIMEDOUT röstning
(pthread_timedjoin_npendast): framgångsriktinnan det också kan bli detgick med.
EDEADLK
Det e argumentet hänvisar så att du ett platsanrop.

Författare

Se även