Avatar billede mickni33 Nybegynder
18. maj 2001 - 15:06 Der er 10 kommentarer og
1 løsning

tråd virker ikke

Hvorfor virker dette ikke programmet kører men vil ikke skrive sætningen i thread_function ud på skærmen
kan ikke forstå den ikke bliver kaldt....
---------------------------------------------------
char message[]=\"hello world\";


int main(){
funk();
return 0;
}


void funk(){
    cout<<\"funk funktion\"<<endl;
pthread_t a_thread;
pthread_create(&a_thread,NULL,thread_function,(void*) message)<<endl;
cout<<\"efter traad create\"<<endl;
}

void *thread_function(void* arg){
    cout<<\"traad funktion\"<<endl;
printf(\"\\ntraad funktion is running arg er %s\\n\", (char*) arg);
sleep (3);
strcpy(message,\"NYMESSAGE\");
pthread_exit(message);

}
Avatar billede disky Nybegynder
18. maj 2001 - 15:13 #1
din tråd kører højest en gang
Avatar billede mickni33 Nybegynder
18. maj 2001 - 15:24 #2
OK det kan godt være jeg ikke har beskrevet det godt nok men hele koden kan ikke være på siden.

på Serveren kører en uendelig løkke og så kalder jeg funk() som skulle starte en tråd...
håber jeg har forklaret det bedre nu. Jeg har også inkluderet #define _REENTRANT
Avatar billede stigc Nybegynder
18. maj 2001 - 16:04 #3
datamatikker?


Du skal bruge printf istedet for cout. Af en eller anden grund virker det \"tit og ofte\" ikke med cout. Lyder ondsvagt, men jeg har haft samme problem.
Avatar billede mickni33 Nybegynder
18. maj 2001 - 16:07 #4
Ja det er rigtigt. Men derfor har jeg også brugt begge dele for at være sikker.
Jeg prøver at gå videre med programmet. det kan jo være at den laver en tråd men bare ikke udskriver mine printf og cout
Avatar billede stigc Nybegynder
18. maj 2001 - 16:12 #5
du skal kun bruger printf
Avatar billede stigc Nybegynder
18. maj 2001 - 16:13 #6
tråden kan gå i stå når der står \"cout\"....
Avatar billede mickni33 Nybegynder
18. maj 2001 - 16:42 #7
Vil det sige i alle de klasser hvor jeg har en cout......pyyyyhaa . altså dem hvor tråden er involverede.Det kan sku godt være
Avatar billede stigc Nybegynder
18. maj 2001 - 16:45 #8
ja desværre, men der kan jo også være andre problemer, så jeg siger ikke at det virker efter du har udskiftet 117 linie. :)
Avatar billede mickni33 Nybegynder
18. maj 2001 - 16:49 #9
NU ved jeg det den udskriver kun hvis jeg har  pthread_join() med i implementeringen. Har lige prøvet mig frem i en hello world
Kommer tilbage senere med point hvis jeg har ret
Avatar billede mickni33 Nybegynder
19. maj 2001 - 11:33 #10
fandt selv løsningen
Avatar billede stigc Nybegynder
19. maj 2001 - 22:11 #11
foresten er detr vist kun problemer med \"endl\" som i cout << \"test\" << endl;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester