【发布时间】:2022-08-18 15:39:10
【问题描述】:
我在另一个里面有两个协程,假设两个内部协程都将异步执行,但这并没有发生。第二个等到第一个完成。 这是我的代码:
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
var flag = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
runBlocking {
launch {
printOne()
}
launch {
printTwo()
}
}
}
suspend fun printOne() {
while (flag == false)
Log.e(\"log\", \"111111\")
}
suspend fun printTwo() {
Log.e(\"log\", \"222222\")
Log.e(\"log\", \"222222\")
Log.e(\"log\", \"222222\")
Log.e(\"log\", \"222222\")
flag = true
}
}
我假设第一个 launch{} 中的代码将在线程中与第二个 launch{} 中的代码以及任何其他协程分开执行。但它一直在第一个 launch{} 内循环