zoukankan      html  css  js  c++  java
  • 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();
                            }
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    linux静态链接库
    查看进程运行时间
    进程间同步-互斥量
    Linux——多线程下解决生产消费者模型
    Linux——线程
    浅谈智能指针的历史包袱
    C++ 模板基础
    用信号量为共享内存添加同步机制
    Linux——浅析信号处理
    浅析fork()和底层实现
  • 原文地址:https://www.cnblogs.com/yangweiqiang/p/9916423.html
Copyright © 2011-2022 走看看