Sobes.tech
Junior — Middle

Kaip įgyvendinti multithreading programoje?

sobes.tech AI

Atsakymas iš AI

Norint įgyvendinti daugiatikrę (multithreading) Android programoje, galima naudoti keletą požiūrių:

  1. Thread klasė — sukurti naują srautą perrašant run() metodą:
new Thread(new Runnable() {
    @Override
    public void run() {
        // kodas, vykdomas atskirame sraute
    }
}).start();
  1. Handler ir Looper naudojimas — žinučių keitimui tarp srautų.

  2. AsyncTask (pasenęs, bet vis dar dažnai naudojamas) — supaprastina foninių užduočių vykdymą su UI atnaujinimu.

  3. ExecutorService — srautų baseinas kelių užduočių valdymui.

  4. Kotlin Coroutines — šiuolaikiškas ir patogus asinchroninio programavimo būdas, leidžiantis rašyti kodą, panašų į sinchroninį.

Pavyzdys, kaip sukurti ir paleisti srautą:

Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        // Ilga operacija
    }
});
thread.start();

Svarbu prisiminti, kad UI atnaujinimai turi būti atliekami tik pagrindiniame sraute (UI thread), todėl rezultatų perdavimui iš foninio srauto naudojami Handler, runOnUiThread() ar kiti mechanizmai.