Sobes.tech
Junior — Middle

Hogyan valósítsunk meg szálmedencét a feladatok végrehajtására az alkalmazásban?

sobes.tech MI

Válasz az MI-től

Az Android alkalmazásban szálmedencét (thread pool) valósíthatsz meg a Java vagy Kotlin ThreadPoolExecutor osztályának használatával.

Kotlin példában a Executors.newFixedThreadPool használatával:

import java.util.concurrent.Executors

// Létrehozunk egy 4 szálból álló medencét
val threadPool = Executors.newFixedThreadPool(4)

// Feladatok küldése végrehajtásra
threadPool.execute {
    // 1. feladat kódja
    println("Feladat 1 fut a ${Thread.currentThread().name} szálon")
}

threadPool.execute {
    // 2. feladat kódja
    println("Feladat 2 fut a ${Thread.currentThread().name} szálon")
}

// A munka befejezése után a medencét helyesen le kell zárni
threadPool.shutdown()

Ha Kotlin Coroutines-t használsz, akkor a Dispatchers.IO-t használhatod, vagy saját szálmedencét hozhatsz létre a newFixedThreadPoolContext segítségével.

A szálmedence korlátozza a párhuzamosan futó szálak számát, ezáltal hatékonyabban lehet erőforrásokat felhasználni, és elkerülhető a túl sok szál létrehozása.