Esatto, in effetti non c'è alcuna garanzia che l'ordine con cui vengono stampati i messaggi sia lo stesso col quale vengono eseguite le operazioni di get() e put(), poichè la stampa dei messaggi non è sincronizzata. Una soluzione potrebbe essere quella di stampare direttamente i messaggi all'interno dei metodi get() e put(), subito dopo aver consumato/prodotto l'oggetto, passandogli come parametro il numero del produttore/consumatore (nel caso ve ne siano più d'uno e serva distinguerli).