Обеспечение контроля в асинхронном коде JavaJAVA

Программисты JAVA общаются здесь
Гость
Обеспечение контроля в асинхронном коде Java

Сообщение Гость »


Я имею опыт асинхронного программирования на Rust/C#/Javascript и пытаюсь понять сопоставимые идиомы Java. В частности, я пытаюсь понять, существует ли модель «зеленых потоков», в которой задача выполняется в потоке, и как только она достигает точки, где она ожидает ввода-вывода, она приостанавливает себя (на других языках это было бы в лице

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

await илиsuspend
ключевые слова) и позволяет запустить другую задачу.
Судя по тому, что я вижу,

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

CompletableFuture
can run asynchronously, but it doesn't release the thread that runs it - if you execute 1000 futures concurrently, you'll need 1000 threads, or depending on your executor, you might use less threads, but you'll also execute less tasks concurrently.
Are there other mechanisms that allow me to perform a large amount of concurrent I/O operations with a limited number of threads? Maybe Kotlin's Coroutines, or Virtual Threads (I prefer not to rely on Virtual Threads, since they require a relatively new version of Java)?


Источник: https://stackoverflow.com/questions/781 ... onous-code

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