void process(int number, int time) {
printf("Prosess %d kjører\n", number);
sleep(time);
printf(" Prosess %d terminated after %d sekunder\n", number, time);
}
int main(void) {
pid_t pid[7];
int status= 0;
if((pid[1]= fork())== 0) {
process(1, 1);
exit(0);
}
if((pid[3]= fork())== 0) {
process(3, 3);
exit(0);
}
waitpid(pid[1], NULL, 0);
if((pid[5]= fork())== 0) {
process(5, 3);
exit(0);
}
if((pid[2]= fork())== 0) {
process(2, 2);
exit(0);
}
waitpid(pid[3], NULL, 0);
//waitpid(pid[2], NULL, 0);
if((pid[4]= fork())== 0) {
process(4, 2);
exit(0);
}
waitpid(pid[5], NULL, 0);
if((pid[6]= fork())== 0) {
process(6, 3);
exit(0);
}
wait(NULL);
while(wait(&status)> 0) {
//We just wait for the children to finish their processes
}
printf("All processes is now terminated\n");
return 0;
}
このコードを同じように変更するにはどうすればよいですか?代わりに pthread とミューテックスを使用しますか?? id (6 つのスレッドがあり、それぞれが異なる時間にスリープする)、sec (スリープ時間)、および int signal[6] を使用して struct メソッドを作成するよう求められます。これは学校の課題であり、C トレーニングは受けていません。助けてください。