⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e096. pausing a thread.txt

📁 这里面包含了一百多个JAVA源文件
💻 TXT
字号:
The proper way to temporarily pause the execution of another thread is to set a variable that the target thread checks occasionally. When the target thread detects that the variable is set, it calls Object.wait(). The paused thread can then be woken up by calling its Object.notify() method. 

Note: Thread.suspend() and Thread.resume() provide methods for pausing a thread. However, these methods have been deprecated because they are very unsafe. Using them often results in deadlocks. With the approach above, the target thread can ensure that it will be paused in an appropriate place. 

    // Create and start the thread
    MyThread thread = new MyThread();
    thread.start();
    
    while (true) {
        // Do work
    
        // Pause the thread
        synchronized (thread) {
            thread.pleaseWait = true;
        }
    
        // Do work
    
        // Resume the thread
        synchronized (thread) {
            thread.pleaseWait = false;
            thread.notify();
        }
    
        // Do work
    }
    
    class MyThread extends Thread {
        boolean pleaseWait = false;
    
        // This method is called when the thread runs
        public void run() {
            while (true) {
                // Do work
    
                // Check if should wait
                synchronized (this) {
                    while (pleaseWait) {
                        try {
                            wait();
                        } catch (Exception e) {
                        }
                    }
                }
    
                // Do work
            }
        }
    }

 Related Examples 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -