扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Java涓璕esumeThread鎬庝箞浣跨敤

扬州沐宇科技
2023-08-04 11:22:34
Java

鍦↗ava涓紝娌℃湁鐩存帴鐨?code>ResumeThread鏂规硶鍙互浣跨敤銆傚湪Java涓紝绾跨▼鐨勬殏鍋滃拰鎭㈠鏄€氳繃wait鍜?code>notify鏂规硶鏉ュ疄鐜扮殑銆?/p>

瑕佹殏鍋滀竴涓嚎绋嬶紝鍙互鍦ㄧ嚎绋嬬殑run鏂规硶涓娇鐢?code>wait鏂规硶銆?code>wait鏂规硶浼氫娇褰撳墠绾跨▼杩涘叆绛夊緟鐘舵€侊紝骞堕噴鏀鹃攣銆傚彧鏈夊綋鍏朵粬绾跨▼璋冪敤浜嗙浉鍚屽璞′笂鐨?code>notify鎴?code>notifyAll鏂规硶鏃讹紝琚殏鍋滅殑绾跨▼鎵嶄細琚敜閱掋€?/p>

涓嬮潰鏄竴涓娇鐢?code>wait鍜?code>notify鏂规硶鏆傚仠鍜屾仮澶嶇嚎绋嬬殑绀轰緥锛?/p>

public class MyThread implements Runnable {
private boolean suspended = false;
public void suspend() {
suspended = true;
}
public void resume() {
suspended = false;
synchronized (this) {
notify();
}
}
@Override
public void run() {
while (true) {
synchronized (this) {
while (suspended) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// 鎵ц绾跨▼鐨勪换鍔?/span>
}
}
}

鍦ㄤ笂闈㈢殑绀轰緥涓紝MyThread绫诲疄鐜颁簡Runnable鎺ュ彛锛屽苟鍖呭惈浜?code>suspend鍜?code>resume鏂规硶鏉ユ殏鍋滃拰鎭㈠绾跨▼銆傚湪run鏂规硶涓紝浣跨敤浜?code>synchronized鍏抽敭瀛楁潵淇濊瘉绾跨▼瀹夊叏锛屽苟鍦ㄥ惊鐜腑妫€鏌?code>suspended鍙橀噺鐨勫€笺€傚鏋?code>suspended涓?code>true锛屽垯璋冪敤wait鏂规硶锛岀嚎绋嬭繘鍏ョ瓑寰呯姸鎬併€傚綋鍏朵粬绾跨▼璋冪敤浜?code>resume鏂规硶鏃讹紝suspended琚疆涓?code>false锛屽苟璋冪敤notify鏂规硶鍞ら啋绛夊緟涓殑绾跨▼銆?/p>

浣跨敤绀轰緥锛?/p>

public class Main {
public static void main(String[] args) throws InterruptedException {
MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();
Thread.sleep(1000); // 鏆傚仠1绉?/span>
myThread.suspend(); // 鏆傚仠绾跨▼
Thread.sleep(1000); // 鏆傚仠1绉?/span>
myThread.resume(); // 鎭㈠绾跨▼
}
}

鍦ㄤ笂闈㈢殑绀轰緥涓紝鍒涘缓浜嗕竴涓?code>MyThread瀵硅薄锛屽苟閫氳繃Thread绫荤殑鏋勯€犳柟娉曞皢鍏朵綔涓哄弬鏁板垱寤轰簡涓€涓柊鐨勭嚎绋嬨€傜劧鍚庯紝璋冪敤浜?code>myThread.suspend()鏂规硶鏆傚仠绾跨▼锛屾殏鍋滀簡1绉掑悗锛岃皟鐢ㄤ簡myThread.resume()鏂规硶鎭㈠绾跨▼銆?/p>

璇锋敞鎰忥紝鍦↗ava涓紝suspend鍜?code>resume鏂规硶宸茶搴熷純锛屼笉寤鸿鍦ㄧ敓浜х幆澧冧腑浣跨敤銆傛洿濂界殑鍋氭硶鏄娇鐢?code>wait鍜?code>notify鏂规硶鏉ュ疄鐜扮嚎绋嬬殑鏆傚仠鍜屾仮澶嶃€傚彟澶栵紝Java涓篃鎻愪緵浜嗗叾浠栨洿楂樼骇鐨勫苟鍙戝伐鍏凤紝濡?code>Lock鍜?code>Condition锛屽彲浠ユ洿鏂逛究鍦板疄鐜扮嚎绋嬬殑鏆傚仠鍜屾仮澶嶃€?/p>

扫码添加客服微信