Безопасно ли запускать блокирующий вызов в исполнителе ОС при использовании виртуального потока? [закрыто]JAVA

Программисты JAVA общаются здесь
Anonymous
Безопасно ли запускать блокирующий вызов в исполнителе ОС при использовании виртуального потока? [закрыто]

Сообщение Anonymous »

Как насчет использования этого способа обработки виртуального потока, когда мы взаимодействуем с существующим, используя синхронизированную библиотеку? Например, диспетчер соединений с базой данных HikariCP в настоящее время не поддерживает виртуальный поток.
Например, вызов getHikariConnection с помощью виртуального потока.

Код: Выделить всё

private val hikarliExecutor = Executors.newWorkStealingPool() // or new FixedPool
def getHikariConnection(prams: String) = {
var conn: Connection = null
val rstFuture = hikarliExecutor.submit(
new Runnable {
override def run(): Unit = {
conn = getConnection()
}
},
conn
)

rstFuture.get()
}

private def getConnection(): Connection = {
// call hikariCP API get a connection
val conn = ...

return conn
}
Я не вижу соответствующего дизайна/принципов использования этого шаблона. Хотите знать, что здесь нужно делать?
По поводу этого HikariCP у меня есть два подробных вопроса:
  • Будет ли это безопасно использовать отдельный исполнитель потоков с существующим виртуальным потоком?
    Как насчет влияния на производительность по сравнению с реализацией пула диспетчера подключений к базе данных виртуальных потоков? (Извините, что еще не вышел из такой библиотеки. Только в теории)
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/786 ... ual-thread

Вернуться в «JAVA»