Chiarimenti su una funzione

di il
4 risposte

Chiarimenti su una funzione

Salve estraggo un pezzo di codice dal sorgente del mio prof
 //generazione di scrittori e lettori
     for (k=0;k<num_processi;k++) {
	pid=fork();
	if (pid==0)  {                //processo figlio
	  if (k==0) {
	     printf("sono il figlio produttore. Il mio pid %d \n",getpid());
      	     sleep(2);
             Produttore(ptr_sh,mutex);
	     } 
	  else {
	     printf("sono il figlio consumatore. Il mio pid %d \n",getpid());
             sleep(1);
             Consumatore(ptr_sh,mutex);
          }
          _exit(0);
	}
      }
non mi è chiaro l' if (k==0) ... perchè il produttore viene chiamato solo per k==0?
nel caso di 3 processi si crea un solo produttore e due consumatori?

4 Risposte

  • Re: Chiarimenti su una funzione

    In quel modo il primo processo è l'unico produttore e tutti gli altri sono consumatori
  • Re: Chiarimenti su una funzione

    Non ho capito come funziona
    il primo processo produce
    il secondo consuma
    il terzo cosa consuma se non viene richiamato il produttore?
  • Re: Chiarimenti su una funzione

    Il produttore produce per tutti i consumatori ...
  • Re: Chiarimenti su una funzione

    Ah quindi produco un solo messaggio che "consumano" ugualmente tutti i consumatori?
Devi accedere o registrarti per scrivere nel forum
4 risposte