Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/resource.h>
  3. #include <stdlib.h>
  4. #include <sys/ioctl.h>
  5. #include <sys/poll.h>
  6. #include <sys/socket.h>
  7. #include <sys/time.h>
  8. #include <netinet/in.h>
  9. #include <errno.h>
  10. #include <unistd.h>
  11. #include <string.h>
  12. #include <fcntl.h>
  13. #include <sys/epoll.h>
  14. #include <sys/wait.h>
  15. #include <sched.h>
  16. #include <pthread.h>
  17.  
  18.  
  19. pthread_mutex_t lock1, lock2;
  20.  
  21. void* resource1(void*) {
  22.  
  23. pthread_mutex_lock(&lock1);
  24.  
  25. printf("Job started in resource1..\n");
  26. sleep(2);
  27.  
  28. printf("Trying to get resourc2\n");
  29. pthread_mutex_lock(&lock2);
  30. printf("Aquired resourc2\n");
  31. pthread_mutex_unlock(&lock2);
  32.  
  33. printf("Job finished in resource1..\n");
  34.  
  35. pthread_mutex_unlock(&lock1);
  36.  
  37. pthread_exit(NULL);
  38.  
  39. }
  40.  
  41. void* resource2(void*) {
  42.  
  43. pthread_mutex_lock(&lock2);
  44.  
  45. printf("Job started in resource2..\n");
  46. sleep(2);
  47.  
  48. printf("Trying to get resourc1\n");
  49. pthread_mutex_lock(&lock1);
  50. printf("Aquired resourc1s\n");
  51. pthread_mutex_unlock(&lock1);
  52.  
  53. printf("Job finished in resource2..\n");
  54.  
  55. pthread_mutex_unlock(&lock2);
  56.  
  57. pthread_exit(NULL);
  58.  
  59. }
  60.  
  61. int main() {
  62.  
  63. pthread_mutex_init(&lock1, NULL);
  64. pthread_mutex_init(&lock2, NULL);
  65.  
  66. pthread_t t1, t2;
  67.  
  68. pthread_create(&t1, NULL, resource1, NULL);
  69. pthread_create(&t2, NULL, resource2, NULL);
  70.  
  71. pthread_join(t1, NULL);
  72. pthread_join(t2, NULL);
  73.  
  74. return 0;
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement