|
| 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
| |
|
|