Il multithreading E' un casino.
Ha ragione: e' un tipo di programmazione abbastanza difficile.
Ma per comprendere i concetti fondamentali e' solo una questione di qualche giorno di studio. Non devi realizzare un intero programma, solo sapere come funzionano.
Per usarli, ti servono concetti come: esecuzione parallela, sincronizzazione, accesso concorrente a risorsa, barriera, semaforo.
Non si capiscono semplicemente usandoli: serve anche infrastruttura concetuale, descritta nei libri.
Le API vuote di Java non sono vuote: quelle sono le interfacce.
Poi ci sono le implementazioni, vere classi, che implementano quelle interfacce.
E' un modo di programmare molto potente: ti permette di cambiare l'implementazione senza dover modificare la logica del programma. E' come avere una macchina con un sistema standard per l'inserimento del motore: la macchina e' sempre la stessa, ma di volta in volta puoi infilarci un motore 1.200cc oppure un 3.000cc, e tu continui a guidare sempre la stessa macchina, ma con prestazioni differenti
Sono tutti concetti che trovi su qualunque libro sul linguaggio. Un forum non e' il posto giusto per chiedere delucidazioni. Non perche' non ci siano persone in grado di farlo, ma perche' sono concetti che si basano su altri concetti e cosi' via.
Un libro inizia dalla base ed un po' alla volta aggiunge concetti ed esempi, facendo un percorso logico. In un forum puoi ottenere solo informazioni a spizzichi e bocconi.