• Sleep示例分析


        sleep让"当前线程"由“运行状态”进入到“休眠(阻塞)状态”,sleep结束,线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。

    示例分析:

    public class TestSleep {
    
        private static final Object lock = new Object();
    
        public static void main(String[] args) {
            SleepThread t1 = new SleepThread("t1");
            SleepThread t2 = new SleepThread("t2");
            t1.start();
            t2.start();
    
            /**
             * sleep让当前线程休眠
             * 让当前线程由“运行状态”进入到“休眠(阻塞)状态”,sleep结束,线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。
             * sleep不会释放lock对象的锁
             */
        }
    
        static class SleepThread extends Thread {
    
            public SleepThread(String name) {
                super(name);
            }
    
            @Override
            public void run() {
                synchronized (lock){
                    for (int i = 0; i < 10; i++) {
                        System.err.println(this.getName()+"___"+i);
                        if (i%4==0){
                            System.err.println(this.getName()+"__sleep_"+i);
                            try {
                                sleep(1000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    c++单例设计模式---17
    c++友元函數---16
    c++const关键字---15
    c++浅拷贝和深拷贝---14
    linux shell 基本语法
    Linux静态库生成
    alsa wav
    Android Butterknife使用方法总结 IOC框架
    利用cglib给javabean动态添加属性,不用在建VO
    钢铁雄心三 通过事件做修改器
  • 原文地址:https://www.cnblogs.com/yangweiqiang/p/9916423.html
Copyright © 2020-2023  润新知