Flutter esegue build, layout e paint in un singolo thread: l'UI isolate. Qualsiasi operazione sincrona che superi i ~16 ms fa saltare frame e produce jank visibile.
Dart non usa i thread condivisi: usa gli isolate, unità di esecuzione con heap separato che comunicano solo tramite messaggi. Questo elimina lock e race condition, ma impone regole precise su cosa si può inviare.
In questo tutorial avanzato vedremo:
- quando conviene davvero usare un isolate (e quando no);
compute()eIsolate.run()per i task one-shot;- un isolate a lunga vita con
ReceivePort/SendPortper flussi di richieste; - cancellazione, gestione errori e
TransferableTypedDataper lo zero-copy; - come misurare il guadagno con i DevTools.
Prerequisiti: Dart 3, dimestichezza con
async/awaiteStream.