thread函数
kotlin 中线程类是 Thread,使用的是 Java 中 Thread 对象。kotlin 中使用 thread 函数创建线程。
public fun thread(
start: Boolean = true,
isDaemon: Boolean = false,
contextClassLoader: ClassLoader? = null,
name: String? = null,
priority: Int = -1,
block: () -> Unit
): Thread
thread 函数的返回类型是 Thread 类,函数中 start 参数在创建完成线程后马上启动,在 Java 中启动线程需要另外调用函数 start 函数;isDarmon 参数是守护线程,守护线程是一种在后台长期运行的线程,守护线程主要提供一些后台服务,它的声明周期与 Java 虚拟机一样长;contextClassLoader 参数是类加载器,用来加载一些资源等;name 参数指定线程名,如果不指定,系统会分配一个线程名;priority 参数是设置线程优先级;block 参数是线程体,即线程要执行的核心代码。
主线程中执行入口是 main(args: Array<String>) 函数,这里可以控制程序的流程、管理其他的子线程等。子线程执行入口是线程体,子线程相关代码是在线程体中编写的。
- 示例代码:
fun run() {
(1..10).forEach {
println("第${it}此执行 - ${currentThread().name}")
sleep((1000 * random()).toLong())
}
println("任务执行完,当前线程名${currentThread().name}")
}
fun main(args: Array<String>?) {
thread() {
run()
}
thread(name = "TestThread") {
run()
}
}
- 运行结果:
I: 第3此执行 - Thread-2
I: 第2此执行 - TestThread
I: 第3此执行 - TestThread
I: 第4此执行 - Thread-2
I: 第4此执行 - TestThread
I: 第5此执行 - TestThread
I: 第5此执行 - Thread-2
I: 第6此执行 - TestThread
I: 第6此执行 - Thread-2
I: 第7此执行 - TestThread
I: 第7此执行 - Thread-2
I: 第8此执行 - TestThread
I: 第8此执行 - Thread-2
I: 第9此执行 - Thread-2
I: 第9此执行 - TestThread
I: 第10此执行 - Thread-2
I: 任务执行完,当前线程名Thread-2
I: 第10此执行 - TestThread
I: 任务执行完,当前线程名TestThread












网友评论