个人备忘录,不是分享文章。。
public class 线程状态演示 { public static void main(String[] args)throws Exception{ showNew(); showRunning(); showBloking(); showWait(); showTimedWait(); showTerminated(); } public static void showTerminated(){ Thread t = new Thread(()->{}); t.start(); try { Thread.sleep(500); } catch (InterruptedException e) { } System.out.println(t.getState()); } public static void showNew(){ System.out.println((new Thread()).getState()); } public static void showRunning(){ (new Thread(()->{ System.out.println(Thread.currentThread().getState()); })).start(); } public static void showTimedWait() throws InterruptedException { Object obj = new Object(); Thread t1 = new Thread(()->{ synchronized (obj){ try { obj.wait(2000); } catch (InterruptedException e) { } } }); t1.start(); Thread t2 = new Thread(()->{ synchronized (obj){ try { Thread.sleep(5000L); obj.notify(); } catch (InterruptedException e) { e.printStackTrace(); } } }); t2.start(); try { Thread.sleep(500); } catch (InterruptedException e) { } System.out.println(t1.getState()); } public static void showWait() throws InterruptedException { Object obj = new Object(); Thread t1 = new Thread(()->{ synchronized (obj){ try { obj.wait(); } catch (InterruptedException e) { } } }); t1.start(); Thread t2 = new Thread(()->{ synchronized (obj){ try { Thread.sleep(5000L); obj.notify(); } catch (InterruptedException e) { e.printStackTrace(); } } }); t2.start(); try { Thread.sleep(500); } catch (InterruptedException e) { } System.out.println(t1.getState()); } public static void showBloking(){ Object obj = new Object(); Thread t1 = new Thread(()->{ synchronized (obj){ try { Thread.sleep(5000L); } catch (InterruptedException e) { e.printStackTrace(); } } }); t1.start(); Thread t2 = new Thread(()->{ try { Thread.sleep(500L); } catch (InterruptedException e) { } synchronized (obj){ try { Thread.sleep(5000L); } catch (InterruptedException e) { e.printStackTrace(); } } }); t2.start(); try { Thread.sleep(1000L); } catch (InterruptedException e) { } System.out.println(t2.getState()); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)