Start with the following functions:
void task1(void *p) { while(1) { puts("task1"); sleep(10); } } void task2(void *p) { while(1) { puts("task2"); sleep(10); } } void task3(void) { while(1) { puts("task3"); sleep(10); } } void task4(void) { while(1) { puts("task4"); sleep(10); } } void task5(void) { int c=0; while(1) { c++; if(c==5) exit(12); puts("task5"); sleep(3); } }
Write 2 different programs:
- Create the above tasks as threads
- Create the above tasks as processes
Test your code
On part 2 , make the main process watch the children and recreate a child while it exited
reference:
- To create thread, use pthread_create
- To create process use fork
- Wait for a process to exit with the function wait
- To compile without threads use: # gcc -o myapp mytest.c
- To compile with threads use: # gcc -pthread -o myapp mytest.c