我听过一些人说“他们不一定会回到同一条线上”,我不明白,有人能给我一步一步解释一下吗?
不能保证,可能也可能不会,这真的取决于以下几点:
coroutine有一个CoroutineContext,指定它的行为方式和运行位置。
suspend fun main() {
val dispatcherScope = CoroutineScope(Executors.newSingleThreadExecutor().asCoroutineDispatcher())
val job = dispatcherScope.launch {
repeat(10) {
launch {
println("I'm working in thread ${Thread.currentThread().name}")
// every coroutine on same thread
}
}
}
job.join()
}
在这里运行它,其他单线程调度程序:dispatchers.main
对于相同的上下文,如果我们在启动前重写dispatcher,即使原始上下文是基于单线程事件循环,它也会改变线程,每个coroutine将在不同的线程上运行,创建10个不同的线程:
dispatcherScope.launch {
repeat(10) {
launch(Dispatchers.IO) {
println("I'm working in thread ${Thread.currentThread().name}")
// every coroutine on same thread
}
}
}
在这里运行它,其他多线程调度程序:dispatchers.default,基于Executor的dispatcher,dispatchers.uncondined(这个启动在任何空闲线程中都是相关的)。
问题内容: 我有一张桌子,里面有人和他们拥有的汽车 该查询为我提供了和拥有完全相同的汽车以及Lisa本人的人,这很好。 结果: 如果我想查找所有拥有相同汽车的人,请重新运行查询,结果应为我。 现在,我有一个Java名称列表,对于每个名称,我都运行此查询。真的很慢。无论如何,是否可以找到所有拥有相同汽车的人,并在单个数据库调用中将结果划分为组? 例如,使用第一个表。我可以运行将名称分组的查询。请注意
这里的进一步问题:promissione.all():在解决和/或拒绝所有承诺后返回一个结果 我正在使用Promissione.all迭代: 我有4种不同的环境。我正在搜索一个设备在所有这4个环境。有些返回404,有些返回200,有些返回属性connected=true,有些返回false。 基本上,我想在connected=true时触发一些函数,但如果connected对于环境为false,我
问题内容: 如果行达到一定数量,我想压缩结果。 然后,客户端程序将解压缩结果和过程。 这是具有客户端/服务器体系结构的桌面,某些客户端通过vpn连接。 客户端连接后,它将向服务器发送数据。服务器完成处理后,客户端将从服务器下载更新的数据。 客户位于几个城镇,平均50-100公里。离开。他们将使用vpn通过Internet连接。但这是使用vpn或其他方式实施的最初计划,但尚未实施。 问题答案: 有一
顺便说一句,我还在学习WebLUX;我不知道这是不是可能的,或者我有错误的方法,但考虑到这种平行的通量。 调用具有webclient请求的方法(service.getamono) 我需要等待enablers Flux的流结束,并处理它内部的所有响应,原因是如果其中一个给我错误或否定的响应,我不会运行这个其他并行Flux的阻塞器 我想过“zip”方法,但这一个合并了两个响应,并不是我想要的,如果任何
我需要执行一些任务。有些任务是独立的,有些任务依赖于其他任务的成功执行。独立任务可以并行运行以获得更好的性能。我把这些任务称为服务。列说明哪些服务将以串联方式执行,哪些服务将以并联方式执行。列描述了一组定义的服务所遵循的执行顺序。例如,服务A和B应该并行运行。如果它们已成功执行,则将执行服务C。请注意,服务C并不直接依赖于其先前服务的输出,但它必须在成功执行其先前服务后运行,因为服务C在执行期间需
问题内容: 在Python中,我想编写一个返回另一个函数的函数。返回的函数应该可以通过参数调用,并返回高度和半径为圆柱的体积。 我知道如何从Python中的函数返回 值 ,但是如何返回 另一个函数 ? 问题答案: 使用Python尝试一下: 这样使用它,例如与和: 注意,返回一个函数很简单,只需在函数内部定义一个新函数,然后在最后返回它- 小心地为每个函数传递适当的参数。仅供参考,从另一个函数返回