低级错误: kotlin 中 thread 创建

1
2
3
thread {

}.start()

这样写?有问题吗
报错:java.lang.IllegalThreadStateException

我靠为啥?最后检查之后:
应该用 Thread{}.start(), 看到了没?是 首字母大写的 Thread,为什么???

要知道 这个写法是没有错的,thread { /* 代码块 */ },将代码块交给 threadlambda 表达式,这个表达式会在新线程中执行,所以上面这个操作相当于重复执行了这个线程,就会报错了。
所以要么:

1
2
3
thread {
// 执行的内容
}

要么

1
2
3
4
5
6
7
8
9
10
11
Thread {

}.start()

// 或者

val myThread = Thread {
// 这里是要在新线程中执行的代码
}
// 这里可以进行其他操作
myThread.start() // 当准备好要启动线程时调用这个方法。
Author

Pinguoooo

Posted on

2024-07-15

Updated on

2024-07-15

Licensed under

Comentarios

:D 一言句子获取中...

Loading...Wait a Minute!