Java是否可以实现真正的异步编程

问题描述 投票:0回答:1

我读过一些关于多线程和异步编程的文章。据我了解,真正的异步任务不需要创建新线程。但我读过的大多数关于 Java 的文章都是使用新线程(使用 Runnable 或 Callable 接口)来实现异步编程。

所以我的问题 - 是否可以用 Java 编写真正异步执行任务的代码

这篇博文明确指出异步任务不需要新线程。

Blog1Blog2Blog3声称异步执行任务,但仍然使用多线程。

java multithreading asynchronous
1个回答
0
投票

异步操作可能会在不使用线程的情况下发生,但您无法控制这些操作。例如,当您启动磁盘写入时,操作系统可能会将命令传递给磁盘控制器以执行直接内存访问 (DMA) 传输,从而释放 CPU 来执行其他操作。但从纯粹的 JVM 角度来看,如果您想编写您可以控制的更高级别的程序,那么您必须使用线程。仅单独使用线程并不能保证纯粹的异步行为。只有一个核心,每个线程不能同时运行。您需要多个核心才能在该级别实现真正的异步行为。

© www.soinside.com 2019 - 2024. All rights reserved.