当前位置:网站首页>Thread sleep, thread sleep application scenarios

Thread sleep, thread sleep application scenarios

2022-07-06 03:48:00 Hao Kai

Thread to sleep sleep

  • sleep Specifies the number of milliseconds the current thread is blocking ,1000ms=1s
  • sleep There is abnormal InterruptedException
  • sleep When the time is up, the thread is ready
  • sleep It can simulate network delay 、 Countdown, etc
  • Every object has a lock ,sleep It won't release the lock

Role of thread hibernation

Analog network delay : Magnify the occurrence of the problem

package testthread;

//sleep Analog network delay : Magnify the occurrence of the problem , Simulate the concurrency of ticket grabbing 
public class TestSleep implements Runnable {
    

    // Number of votes 
    private Integer ticketNums = 10;

    @Override
    public void run() {
    
        while (true) {
    
            if (ticketNums <= 0) {
    
                break;
            }
            // Analog delay 
            try {
    
                Thread.sleep(100);
            } catch (InterruptedException e) {
    
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + " Got the first " + ticketNums-- + " Tickets ");
        }
    }

    public static void main(String[] args) {
    
        TestSleep testSleep = new TestSleep();
        new Thread(testSleep, " Xiaohong ").start();
        new Thread(testSleep, " Xiao Ming ").start();
        new Thread(testSleep, " Cattle ").start();
        
        /*  Output :  Xiao Ming grabbed the first 10 Tickets   Scalper grabbed the first place 9 Tickets   Xiao Hong grabbed the first 10 Tickets   Scalper grabbed the first place 8 Tickets   Xiao Hong grabbed the first 8 Tickets   Xiao Ming grabbed the first 7 Tickets   Scalper grabbed the first place 6 Tickets   Xiao Ming grabbed the first 4 Tickets   Xiao Hong grabbed the first 5 Tickets   Xiao Hong grabbed the first 3 Tickets   Scalper grabbed the first place 3 Tickets   Xiao Ming grabbed the first 3 Tickets   Scalper grabbed the first place 2 Tickets   Xiao Hong grabbed the first 2 Tickets   Xiao Ming grabbed the first 2 Tickets   Xiao Ming grabbed the first 1 Tickets   Scalper grabbed the first place 1 Tickets   Xiao Hong grabbed the first 1 Tickets  */
    }
}

Analog countdown

There is a super classic passage , That is to say, the boss will output the current time of one day , Then use in the code sleep Method thread has been dormant for a whole 24 Hours and then output .
 Insert picture description here

package testthread;

//sleep Analog countdown :
public class TestSleep2 {
    

    public static void main(String[] args) throws InterruptedException {
    
        int countDown = 10;
        while (true) {
    
            Thread.sleep(1000);
            System.out.println(countDown--);
            if (countDown <= 0) {
    
                break;
            }
        }
    }
}
原网站

版权声明
本文为[Hao Kai]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202132308090558.html