Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/resource.h>
- #include <stdlib.h>
- #include <sys/ioctl.h>
- #include <sys/poll.h>
- #include <sys/socket.h>
- #include <sys/time.h>
- #include <netinet/in.h>
- #include <errno.h>
- #include <unistd.h>
- #include <string.h>
- #include <fcntl.h>
- #include <sys/epoll.h>
- #include <sys/wait.h>
- #include <sched.h>
- #include <pthread.h>
- pthread_mutex_t lock1, lock2;
- void* resource1(void*) {
- pthread_mutex_lock(&lock1);
- printf("Job started in resource1..\n");
- sleep(2);
- printf("Trying to get resourc2\n");
- pthread_mutex_lock(&lock2);
- printf("Aquired resourc2\n");
- pthread_mutex_unlock(&lock2);
- printf("Job finished in resource1..\n");
- pthread_mutex_unlock(&lock1);
- pthread_exit(NULL);
- }
- void* resource2(void*) {
- pthread_mutex_lock(&lock2);
- printf("Job started in resource2..\n");
- sleep(2);
- printf("Trying to get resourc1\n");
- pthread_mutex_lock(&lock1);
- printf("Aquired resourc1s\n");
- pthread_mutex_unlock(&lock1);
- printf("Job finished in resource2..\n");
- pthread_mutex_unlock(&lock2);
- pthread_exit(NULL);
- }
- int main() {
- pthread_mutex_init(&lock1, NULL);
- pthread_mutex_init(&lock2, NULL);
- pthread_t t1, t2;
- pthread_create(&t1, NULL, resource1, NULL);
- pthread_create(&t2, NULL, resource2, NULL);
- pthread_join(t1, NULL);
- pthread_join(t2, NULL);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement