Toggle navigation
Images.Elk.pl
watki
#define REENTRANT
#include
#include
#include
#include
#include
#include
int suma1,suma2,suma;
int odlacz_watek1,odlacz_watek2;
int tab[2][10];
int kod_powrotu1,kod_powrotu2;
void *sumuj1();
void *sumuj2();
int main()
{
int i,j;
printf("Glowny watek: getpid = %d gettid = %lu\n\n", getpid(), pthread_self());
pthread_t watek1,watek2;
srand(time(NULL));
for(i = 0; i < 2; i++)
for(j = 0; j < 10; j++)
tab[i][j] = rand() % 30;
if(pthread_create( &watek1, NULL, sumuj1, NULL ))
printf("Watek nie mogl zostac utworzony");
if(pthread_create( &watek2, NULL, sumuj2, NULL ))
printf("Watek nie mogl zostac utworzony");
if( !pthread_equal( pthread_self(), watek1 ))
pthread_join( watek1,(void*) &kod_powrotu1 );
if( !pthread_equal( pthread_self(), watek2 ))
pthread_join( watek2,(void*) &kod_powrotu2 );
suma = suma1+suma2;
printf("Suma wszystkich elementow tablicy tab: %d\n", suma);
printf("Kod powrotu 1: %d\n",kod_powrotu1);
printf("Kod powrotu 2: %d\n",kod_powrotu2);
odlacz_watek1 = pthread_detach( watek1 );
if(odlacz_watek1 == -1) printf("PORAZKA\n");
odlacz_watek2=pthread_detach( watek2 );
if(odlacz_watek2 == -1) printf("PORAZKA\n");
return 0;
}
void *sumuj1()
{
int i;
for(i = 0; i < 10; i++)
suma1 += tab[0][i];
printf("Suma pierwszego wiersza wynosi: %d\n", suma1);
printf("Watek 1: getpid = %d gettid = %lu\n\n", getpid(), pthread_self());
pthread_exit((void*)0);
}
void *sumuj2()
{
int i;
for(i = 0; i < 10; i++)
suma2 += tab[1][i];
printf("Suma drugiego wiersza wynosi: %d\n", suma2);
printf("Watek 2: getpid = %d gettid = %lu\n\n", getpid(), pthread_self());
pthread_exit((void*)0);
}
//detachstate pthread_create_joinable
//pthread_exit((void*)1);
Wyszukiwarka
Podobne podstrony:
wątki ceglane pśin
SO 05 Watki
watki
opis watki (2)
Wątki mitologiczne w sztuce nowożytnej
opis watki
watki
Java watki
sołtys,systemy operacyjne, wątki
wyk watki mutexy
watki 2
wątki
Wątki
Wątki
watki
więcej podobnych podstron