美文网首页
8.3 线程控制

8.3 线程控制

作者: jadefly | 来源:发表于2018-01-03 17:48 被阅读0次

    线程中断

    方法:void interrupt():中断线程(本质没有中断操作,只是给线程对象加了个标记,设置其中断状态为true);

                                         (不能中断正在运行过程中的线程,只能中断阻塞过程中的线程)

               static boolean interrupted(): 返回当前线程是否已经中断;

               boolean isInterrupted(): 返回线程是否已经中断;

    线程中断

    线程让步

    作用:用于正在执行的线程,在某些情况下让出CPU资源,让给其它线程执行;

                (如果持有同步锁,并不会释放同步锁资源)

    方法:static void yield():暂停当前正在执行的线程对象,并执行其他线程

    线程让步

    线程睡眠

    方法:static void sleep(long millis):让当前正在执行的线程休眠(暂停执行)指定的毫秒数;

               static void sleep(long millis, int nanos):线程休眠 毫秒数+纳秒数;

    线程休眠

    线程合并

    作用:所谓合并,就是等待其它线程执行完,再执行当前线程,执行起来的效果就好像把其它线程合并到当前线程执行一样;

                (优先执行调用join方法的线程,最后执行当前线程)

    方法:void join():等待该线程终止;

               void join(long millis):等待该线程终止的时间最长为 millis 毫秒;

               void join(long millis, int nanos):等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒;

    线程合并

    sleep和wait方法区别

    sleep:1.Thread的方法

                 2.让出CPU,时间到了再回到该线程继续执行,不会释放同步锁资源

                 3.任何地方使用

    wait:1.Object的方法

              2.释放同步锁资源,进入等待队列,需要notify唤醒(唤醒后只是得到竞争同步锁的资格)  

              3.只能在同步方法或同步块中使用(因为要释放同步资源锁)


    相关文章

      网友评论

          本文标题:8.3 线程控制

          本文链接:https://www.haomeiwen.com/subject/cxvmgxtx.html