Java 我可以在CompletableFuture runAsync中进行数据库调用吗?

Java 我可以在CompletableFuture runAsync中进行数据库调用吗?,java,completable-future,Java,Completable Future,我有一个用例,需要进行数据库调用以检索runAsync()中的一些数据。我有以下方法: return CompletableFuture.runAsync(() -> { // Line 1 // Line 2 - fetch from database // Line 3 - use the retrieved value to set field on an object }) 我的问题是-是否保证第3行按顺序在第2行之后执行?

我有一个用例,需要进行数据库调用以检索
runAsync()
中的一些数据。我有以下方法:

return CompletableFuture.runAsync(() -> {
        // Line 1
        // Line 2 - fetch from database
        // Line 3 - use the retrieved value to set field on an object
    })

我的问题是-是否保证第3行按顺序在第2行之后执行?有什么需要注意的地方吗?

可运行的
中的三行将依次执行,1、2、3

runAsync
应用于整个
Runnable
,而不是单个行

如果您多次调用
runAsync
,您将失去订购保证


您可以使用
然后应用
(以及相关的thenXxxx)方法来保持顺序,并对不同的行使用不同的方法。

可运行
中的三行将依次执行,1、2、3

runAsync
应用于整个
Runnable
,而不是单个行

如果您多次调用
runAsync
,您将失去订购保证

您可以使用
然后应用
(以及相关的thenXxxx)方法来保持顺序,并对不同的行使用不同的方法