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.