Advertisement
Guest User

Untitled

a guest
Nov 25th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/types.h>
  4. #include <pthread.h> // nowa biblioteka do obslugi watkow
  5.  
  6. #define THREADS 2
  7. pthread_t p_thread[THREADS];
  8.  
  9. int n;
  10.  
  11. int Tet(int n)
  12. {
  13. if ( n == 0 || n==1 || n==2 )
  14. return 0;
  15. else if ( n == 3 )
  16. return 1;
  17. else
  18. return Tet(n-1)+Tet(n-2)+Tet(n-3)+Tet(n-4);
  19. }
  20.  
  21.  
  22. void *thread(void *arg) {
  23. int liczba = (int)arg;
  24. void *result;
  25. int x = Tet(liczba);
  26. result = (void *)x;
  27. pthread_cancel(p_thread[1]);
  28. pthread_exit(result);
  29. }
  30.  
  31.  
  32. void *imie(void *arg) {
  33. int index=0;
  34. char imie[6] = "Adrian";
  35. for(;;){
  36. if(imie[index]=='\0'){
  37. index=0;
  38. }
  39. printf("%c", imie[index]);
  40. printf(" ");
  41. fflush(stdout);
  42. index++;
  43. usleep(500000);
  44. }
  45. }
  46.  
  47. int main(int argc,char* argv[]) {
  48.  
  49. printf("Podaj n: ");
  50. scanf("%d", &n);
  51.  
  52. void* result;
  53. if(pthread_create(&p_thread[0], NULL, thread, (void *)&n)) {
  54. printf("Uwaga: Wystąpił błąd przy tworzeniu wątku \n");
  55. }
  56.  
  57. if(pthread_create(&p_thread[1], NULL, imie, (void *)NULL)) {
  58. printf("Uwaga: Wystąpił błąd przy tworzeniu wątku \n");
  59. }
  60. pthread_join(p_thread[0], &result); //wstrzymanie watku do czasu zakonczenia watku pierwszego
  61.  
  62.  
  63. printf("\nWynik: %d\n",(int)result); // wypisz obliczony wynik
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement