ciao, sto facendo delle prove per gestire la sincronizzazione fra due o più threads.
sto provando a lanciare due thread e fare in modo che il secondo non scriva nella lista finchè il primo non finisce...

Codice PHP:
public class Test {

    public static 
void main(String[] argv){
        
ThreadsSincronizzati threadSincronizzati = new ThreadsSincronizzati();
        }

    } 
Codice PHP:
import java.util.*;

public class 
ThreadsSincronizzati {

    public static 
Lista miaLista;
    private 
Thread01 thread01;
    private 
Thread02 thread02;
    private 
ThreadStampa threadStampa;
    
    public 
ThreadsSincronizzati(){
        
miaLista = new Lista();
        
thread01 = new Thread01();
        
thread02 = new Thread02();
        
threadStampa = new ThreadStampa();
        
        
thread01.start();
        
thread02.start();
        
threadStampa.start();
        }
    
    } 
Codice PHP:
import java.util.*;

public class 
Lista {
    
    private static 
ArrayList lista;
    
    public 
Lista(){
        
lista = new ArrayList();
        }

    public 
synchronized void aggiungi(String testo){
        
lista.add(testo);
        }
    
    public 
synchronized void stampa(){
        for(
int i 0lista.size(); i++){
            
System.out.println(lista.get(i));
            }
        }
    
    } 
Codice PHP:
public class Thread01 extends Thread {

    public 
void run(){
        
System.out.println("ESECUZIONE THREAD 01");
        for(
int i 0100++){
            
ThreadsSincronizzati.miaLista.aggiungi("THREAD01 " i);
            try{    
                
this.sleep(20);
                }
            catch(
Exception err){
                
System.out.println("ERRORE THREAD 01");
                }
            }
        }

    } 
Codice PHP:
public class Thread02 extends Thread {

    public 
void run(){
        
System.out.println("ESECUZIONE THREAD 02");
        for(
int i 0100++){
            
ThreadsSincronizzati.miaLista.aggiungi("THREAD02 " i);
            try{    
                
this.sleep(20);
                }
            catch(
Exception err){
                
System.out.println("ERRORE THREAD 01");
                }
            }
        }

    } 

ho provato e riprovato ma i due threads continuano a scrivere nella lista in modo alternat...