Я новичок в этих дочерних родительских процессах. И id как создать Мастер и 3 раба. Это то же самое? Если я создам 3 ребенка, это будет как 3 раба? Еще мой вопрос: я уже создал 3 ребенка. Но я твердо верю, что эти дочерние процессы не работают параллельно. Я должен заставить их работать параллельно. Я считаю, что для цикла это не позволяет? Как другим способом я могу реализовать три подчиненных устройства, работающих параллельно и в случайном порядке, они заканчивают работу? То, как я это воспринял, всегда идет, как раб 1, закончил, затем раб 2 закончил. Но мой профессор спрашивает меня, что они должны быть в состоянии закончить в случайном порядке. Я думаю, что мои дочерние процессы кодов создают другой дочерний элемент, когда выполняется предыдущий код childs.Создание нескольких дочерних процессов, выполняющихся параллельно
for(int i=0; i<3; i++){
pid_t slave = fork();
if (slave==0) /* only execute this if child */
{
std::cout << "Slave " << i+1 << ": ";
switch(i+1){
case 1 :
std::cout << "Project statistics" << std::endl;
break;
case 2 :
std::cout << "Midterm statistics" << std::endl;
break;
case 3 :
std::cout << "Final statistics" << std::endl;
break;
default :
std::cout << "Something Went Wrong" << std::endl;
}
foo("Child");
std::cout << "Slave " << i+1 << ": Done" << std::endl;
exit(0);
}
wait(&status); /* only the parent waits */
}
Я должен заставить их работать параллельно .... что работа планировщика – basav
есть ли определенный порядок, который вы хотите наложить? – basav
Нет, что я имел в виду. Процессы должны проходить параллельно. Если работа первых процессов больше, чем вторая и третья, тогда второй и третий процесс должны заканчиваться первым. Затем первый, закончив свою работу, должен закончить. Это зависит только от рабочей нагрузки. В этом для цикла i believ это только позволяет создать второй процесс, когда первый процесс будет выполнен. – hfakar