zoukankan      html  css  js  c++  java
  • 多线程012线程的sleep、wait、join、yield如何使用

    1、Sleep:

    sleep的作用是让目前正在执行的线程休眠,让CPU去执行其他线程。线程的状态变成阻塞状态。

    注意:sleep会发生线程中断异常;sleep不会释放锁。

    2、Wait:

    wait必须先获得对应的锁才能调用,它让线程进入等待状态,释放当前线程持有的锁,线程只有在其他线程调用notify()或notifyAll()时,才可能被重新唤醒,抢夺CPU。

    3、Join:

    join是线程之间协同方式,他的使用场景为:

    线程A必须等待线程B执行完毕后才可以执行,那么就在线程A的代码中加入:

    ThreadB.join();

    就是让线程B抢占资源去执行,此时A处于等待状态。

    4、Yield:

    yield让当前线程从运行中状态回到就绪状态,是让出CPU的方式。

    它允许具有相同优先级的其他线程可以有机会获得运行的机会。

  • 相关阅读:
    .net 自带的两个内置委托
    Socket
    SQL EXISTS与IN的区别(2)
    一个选择题,写了一个类
    SQL Server- 存储过程(2)
    VS插件-JSEnhancements
    SQL Server- 存储过程(1)
    MVC-工作原理
    C#-属性
    SQL Server 中游标的使用
  • 原文地址:https://www.cnblogs.com/asenyang/p/15570555.html
Copyright © 2011-2022 走看看