Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <pthread.h> // nowa biblioteka do obslugi watkow
- #define THREADS 2
- pthread_t p_thread[THREADS];
- int n;
- int Tet(int n)
- {
- if ( n == 0 || n==1 || n==2 )
- return 0;
- else if ( n == 3 )
- return 1;
- else
- return Tet(n-1)+Tet(n-2)+Tet(n-3)+Tet(n-4);
- }
- void *thread(void *arg) {
- int liczba = (int)arg;
- void *result;
- int x = Tet(liczba);
- result = (void *)x;
- pthread_cancel(p_thread[1]);
- pthread_exit(result);
- }
- void *imie(void *arg) {
- int index=0;
- char imie[6] = "Adrian";
- for(;;){
- if(imie[index]=='\0'){
- index=0;
- }
- printf("%c", imie[index]);
- printf(" ");
- fflush(stdout);
- index++;
- usleep(500000);
- }
- }
- int main(int argc,char* argv[]) {
- printf("Podaj n: ");
- scanf("%d", &n);
- void* result;
- if(pthread_create(&p_thread[0], NULL, thread, (void *)&n)) {
- printf("Uwaga: Wystąpił błąd przy tworzeniu wątku \n");
- }
- if(pthread_create(&p_thread[1], NULL, imie, (void *)NULL)) {
- printf("Uwaga: Wystąpił błąd przy tworzeniu wątku \n");
- }
- pthread_join(p_thread[0], &result); //wstrzymanie watku do czasu zakonczenia watku pierwszego
- printf("\nWynik: %d\n",(int)result); // wypisz obliczony wynik
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement