Thread类的sleep()方法

/**
 * Thread类中的sleep()方法;
 * 这个方法的意思就是睡眠
 * 好吧,如果你觉得不够具体,可以认为是让当前线程暂停一下,
 * 当前线程随之进入阻塞状态,当睡眠时间结束后,当前线程重新进入就绪状态,开始新一轮的抢占计划!
 *
 * 线程处于运行状态-------->当前线程执行sleep(具体毫秒值)方法------->当前线程进入阻塞状态
 * ------>当睡眠时间到时------->该线程重新进入就绪状态----->与其他线程一起抢占CPU
 *
 * 要注意的是:
 *      线程sleep()的时候,如果线程持有某块代码块的锁对象!
 *      则该线程是不会释放该代码块的锁对象的!
 *      也就是说当前线程即使通过sleep()方法进入阻塞状态,锁对象依然没有释放,如果此时其他的线程获取到了
 *      CPU的执行权,但是他没有锁对象,该线程依然无法执行同步代码块,只能阻塞。只有当持有锁对象的线程睡完了
 *      并且转为就绪状态,而且成功被CPU临幸,该线程执行完之后,会释放锁对象,(效率变得好低)。
 *
 *      而 线程得wait()方法,也是从运行状态进入阻塞状态,但是wait()方法是会释放锁对象的!!!!
 *
 *
 *
 **/
public class ThreadStudy {
    //检查网络是否畅通的例子!
    public static void main(String[] arg) throws Exception {
        for (int i = 0; i <= 1000; i++) {
            //发送请求1000次

            //如果网络畅通,则该线程休眠6秒后,再次发送请求
            if (IsInternetAccess()) { //静态不能访问非静态
                Thread.sleep(1000 * 6);//注意这里
            } else {
                //如果网络不通畅,直接提示错误信息,循环结束
                System.out.println("Error! Can not Access Internet!");
                break;
            }
        }
    }

    //检查网络是否通畅的具体代码。最后得到的结果 true代表网络通常,而false代表网络不通畅!
    private static Boolean IsInternetAccess() {
        //bala bala
        //return true;
        return true;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值