线程——挂起(suspend)和继续执行(resume)线程

挂起(suspend)和继续执行(resume)线程      (不推荐使用)


suspend不会释放锁,如果加锁放生在resume()之前,则会发生死锁.

线程——挂起(suspend)和继续执行(resume)线程_第1张图片

package com.nliki.www;

public class BadSuspend {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws InterruptedException{
		t1.start();
		Thread.sleep(100);
		t2.start();
		t1.resume();
		t2.resume();
		t1.join();
		t2.join();
	}
	
	public static Object ob=new Object();
	static ObjectThread t1=new ObjectThread("t1");
	static ObjectThread t2=new ObjectThread("t2");
	
	public static class ObjectThread extends Thread{
		public ObjectThread(String name){
			super.setName(name);
		}
		@Override
		public void run(){
			synchronized(ob){
				System.out.println("in "+getName());
				Thread.currentThread().suspend();
			}
		}
	}

}
输入结果:

线程——挂起(suspend)和继续执行(resume)线程_第2张图片

我们去后台看下:

线程——挂起(suspend)和继续执行(resume)线程_第3张图片




你可能感兴趣的:(Java编程)