Kotlin线程(2)创建线程

  • 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) 函数,这里可以控制程序的流程、管理其他的子线程等。子线程执行入口是线程体,子线程相关代码是在线程体中编写的。

  • 示例代码:
fun run() {
    (1..10).forEach {
        println("第${it}此执行 - ${currentThread().name}")
        sleep((1000 * random()).toLong())
    }
    println("任务执行完,当前线程名${currentThread().name}")
}


fun main(args: Array?) {
    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

你可能感兴趣的:(Kotlin线程(2)创建线程)