public class Deadlock5{ /*private static final Object obj1 = "resource1"; private static final Object obj2 = "resource2";*/ //semaphore private static final Semaphore obj1 = new Semaphore(1); private static final Semaphore obj2 = new Semaphore(1); public static void main(String[] args) throws Exception { obj1.acquire(); obj2.acquire(); Thread t1 = new Thread(new p1()); Thread t2 = new Thread(new p2()); t1.start(); t2.start(); } public static class p1 implements Runnable { @Override public void run(){ try{ synchronized(obj1){ System.out.println("Thread1 acquired lock on resource1"); Thread.sleep(100); obj1.release(); synchronized(obj2){ System.out.println("Thread1 acquired lock on resource2"); System.out.println("finish"); } } } catch(InterruptedException e){System.out.println("Process interrupted....");} } } public static class p2 implements Runnable { @Override public void run(){ try{ synchronized(obj2){ System.out.println("Thread2 acquired lock on resource2"); Thread.sleep(100); obj2.release(); synchronized(obj1){ System.out.println("Thread2 acquired lock on resource1"); System.out.println("finish"); } } } catch(InterruptedException e){System.out.println("Process interrupted....");} } } }
เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง