/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Tråde
Fra : AHR


Dato : 04-05-04 20:10

Hej NG

Kan nogen fortælle mig hvad jeg gør galt i nedenstående kode?

Jeg får ingen fejl i kompileringen men får heller ikke skrevet "hej" ud.

Tak
AHR

***************************************************

#include <stdio.h>
#include <pthread.h>
#include <iostream.h>

void* t1(void* data)
{
cout<<"hej";
}

int main(int argc, char* argv[])
{
pthread_t p_thread;
int a = 1;

pthread_create(&p_thread, NULL, t1, (void*)&a);

return 0;
}





 
 
Bertel Brander (04-05-2004)
Kommentar
Fra : Bertel Brander


Dato : 04-05-04 20:40

AHR wrote:
> Hej NG
>
> Kan nogen fortælle mig hvad jeg gør galt i nedenstående kode?
>
Jeg tror du skal lave en pause i main() efter at du har startet tråden
for at give denne en chance for at komme til at køre, inden programmet
afslutter og tråden bliver lukket.

Prøv at putte en getchar(); ind efter pthread_create(...)

/b

AHR (04-05-2004)
Kommentar
Fra : AHR


Dato : 04-05-04 21:33

> Jeg tror du skal lave en pause i main() efter at du har startet tråden
> for at give denne en chance for at komme til at køre, inden programmet
> afslutter og tråden bliver lukket.
>
> Prøv at putte en getchar(); ind efter pthread_create(...)

Mange tak. Det hjalp, men hvis jeg nu vil bruge sleep() hvad er det så jeg
skal inkludere?

Tak igen
AHR



Bertel Brander (04-05-2004)
Kommentar
Fra : Bertel Brander


Dato : 04-05-04 22:01

AHR wrote:
>>Jeg tror du skal lave en pause i main() efter at du har startet tråden
>>for at give denne en chance for at komme til at køre, inden programmet
>>afslutter og tråden bliver lukket.
>>
>>Prøv at putte en getchar(); ind efter pthread_create(...)
>
>
> Mange tak. Det hjalp, men hvis jeg nu vil bruge sleep() hvad er det så jeg
> skal inkludere?
>

sleep() er vist i sys/unistd.h

Prøv med en "man 3 sleep"

Du kører Linux ikke?

/b

Kasper Laudrup (06-05-2004)
Kommentar
Fra : Kasper Laudrup


Dato : 06-05-04 09:27

On Tue, 04 May 2004 22:32:36 +0200, AHR wrote:

>> Jeg tror du skal lave en pause i main() efter at du har startet tråden
>> for at give denne en chance for at komme til at køre, inden programmet
>> afslutter og tråden bliver lukket.
>>
>> Prøv at putte en getchar(); ind efter pthread_create(...)
>
> Mange tak. Det hjalp, men hvis jeg nu vil bruge sleep() hvad er det så jeg
> skal inkludere?
>
> Tak igen
> AHR

Jeg tror at sleep() får hele processen til at sove (inklusiv alle tråde
i processen), så det hjælper næppe så meget. Det er lidt svært at
finde ud af hvad du vil, men du skal næppe bruge sleep i nogen form, men
synkronisere med mutex og lign. Prøv at google efter "posix threads", der
er massere af glimrende information.

/Kasper
--
Writing non-free software is not an ethically legitimate activity, so if
people who do this run into trouble, that's good! All businesses based
on non-free software ought to fail, and the sooner the better.
-- Richard Stallman


Rasmus Meldgaard (05-05-2004)
Kommentar
Fra : Rasmus Meldgaard


Dato : 05-05-04 22:31

"AHR" <ahr@xx.xx> writes:
> Jeg får ingen fejl i kompileringen men får heller ikke skrevet "hej" ud.
[snip]
> cout<<"hej";
[snip]

prøve med:
cout << "hej" << endl;

--
Rasmus Meldgaard

Alpha assembler - det kan jo læses;
det er lige som Visuel Basic bare bedre.
   -- Allan Sandfeld

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408877
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste