2
我想知道在FS2中實現Object Pool pattern的最佳方法是什麼。與FS2的對象池模式
比方說,我們有以下MyPrinter
定義:
class MyPrinter {
import scala.util.Random.nextInt
Thread.sleep(5000 + nextInt(1000))
def doStuff(s: String): Unit = {
println(s)
Thread.sleep(1000 + nextInt(1000))
}
def releaseResources(): Unit =
println("Releasing resources")
}
什麼是使通過的n
打印機池支持的Stream[Task, MyPrinter]
的最佳方式?當流結束時,所有的底層資源應該通過調用releaseResources
來正確釋放。
獎金問題:如果打印機由於某種原因而結束,是否可以在池中創建一個新的?