Kotlin笔记 线程(十一)

Kotlin笔记 线程(十一)

Kotlin笔记数据类型(一)
Kotlin笔记字符串(二)
Kotlin笔记运算符(三)
Kotlin笔记函数(四)
Kotlin笔记面向对象(五)
Kotlin笔记继承、抽象类、接口(六)
Kotlin笔记高阶函数(七)
Kotlin笔记泛型(八)
Kotlin 笔记 数据容器(九)
Kotlin笔记函数式编程API(十)



一、线程创建

fun main(args: Array<String>) {

//    public fun thread(
//        start: Boolean = true,  //创建完成是否马上启动
//        isDaemon: Boolean = false, // 是否为守护线程 守护线程是
//一种在后台长期运行线程,守护线程主要提供一些后台服务,它的生命周期与Java虚拟机
//一样长
//        contextClassLoader: ClassLoader? = null, // 类加载器,用来加载一些资源等;
//        name: String? = null, //指 定线程名,如果不指定线程名
//        priority: Int = -1,  //设置线程优先 级
//        block: () -> Unit //是线程要执行的核心代码。
//    ): Thread

    thread {
        run()
    }

    thread (name = "zyb"){
        run()
    }


}

fun run(){
    for(i in 0..9){
        println("第${i}次执行 - ${currentThread().name}")
// 随机生成休眠时间
        val sleepTime = (1000 * random()).toLong()
// 线程休眠
        sleep(sleepTime)
    }
    println("执行完成! " + currentThread().name)

}

二、线程状态

  1. 新建状态
    新建状态(New)是通过实例化Thread创建线程对象,它仅仅是一个空的线程对

  2. 就绪状态
    新建线程的start()函数后,它就进入就绪状态(Runnable)。此时
    的线程尚未真正开始执行线程体,它必须等待CPU的调度

  3. 运行状态
    CPU的调度就绪状态的线程,线程进入运行状态(Running),处于运行状态的线程
    独占CPU,执行完成线程体

  4. 阻塞状态
    因为某种原因运行状态的线程会进入不可运行状态,即阻塞状态(Blocked),处
    于阻塞状态的线程Java虚拟机系统不能执行该线程,即使CPU空闲,也不能执行该
    线程。如下几个原因会导致线程进入阻塞状态:

  • 当前线程调用sleep函数,进入休眠状态。
  • 被其他线程调用了join函数,等待其他线程结束。
  • 发出I/O请求,等待I/O操作完成期间。
  • 当前线程调用wait函数。
  1. 死亡状态
    线程执行完成线程体后,就会进入死亡状态(Dead),线程进入死亡状态有可能是
    正常执行完成进入,也可能是由于发生异常而进入的

三、线程管理

1、join

当前线程调用 子线程的join方法会阻塞当前线程,优先执行子线程

fun main(args: Array<String>) {
    var thread1=thread {
        run()
    }
    thread1.join()
    var thread2=thread (name = "zyb"){
        run()
    }


}

fun run( ){
    for(i in 0..9){
        println("第${i}次执行 - ${currentThread().name}")
// 随机生成休眠时间

        val sleepTime = (1000 * random()).toLong()
// 线程休眠
        sleep(sleepTime)
    }
    println("执行完成! " + currentThread().name)

}0次执行 - Thread-01次执行 - Thread-02次执行 - Thread-03次执行 - Thread-04次执行 - Thread-05次执行 - Thread-06次执行 - Thread-07次执行 - Thread-08次执行 - Thread-09次执行 - Thread-0
执行完成! Thread-00次执行 - zyb
第1次执行 - zyb
第2次执行 - zyb
第3次执行 - zyb
第4次执行 - zyb
第5次执行 - zyb
第6次执行 - zyb
第7次执行 - zyb
第8次执行 - zyb
第9次执行 - zyb
执行完成! zyb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值