Dici che static non va bene perchè creo comunque un solo ArrayList e non ha senso che sia statico ??

Forse ho capito male dove devo mettere synchronizated per fare in modo che tutto il ciclo for del primo thread venga eseguito e subito dopo venga eseguito tutto il ciclo for del secondo thread ??!?!

Ho modificato così il run() del thread ma non cambia l'esecuzione...

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