added ex H1
This commit is contained in:
		
							
								
								
									
										43
									
								
								src/exercicses/ex_h/TestThreadWithDeadlock.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/exercicses/ex_h/TestThreadWithDeadlock.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | package exercicses.ex_h; | ||||||
|  |  | ||||||
|  | public class TestThreadWithDeadlock { | ||||||
|  |     public static Object Lock1 = new Object(); | ||||||
|  |     public static Object Lock2 = new Object(); | ||||||
|  |  | ||||||
|  |     public static void main(String args[]) { | ||||||
|  |         ThreadDemo1 T1 = new ThreadDemo1(); | ||||||
|  |         ThreadDemo2 T2 = new ThreadDemo2(); | ||||||
|  |         T1.start(); | ||||||
|  |         T2.start(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private static class ThreadDemo1 extends Thread { | ||||||
|  |         public void run() { | ||||||
|  |             synchronized (Lock1) { | ||||||
|  |                 System.out.println("Thread 1: Holding lock 1..."); | ||||||
|  |                 try { | ||||||
|  |                     Thread.sleep(10); | ||||||
|  |                 } catch (InterruptedException e) {} | ||||||
|  |                 System.out.println("Thread 1: Waiting for lock 2..."); | ||||||
|  |                 synchronized (Lock2) { | ||||||
|  |                     System.out.println("Thread 1: Holding lock 1 & 2..."); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     private static class ThreadDemo2 extends Thread { | ||||||
|  |         public void run() { | ||||||
|  |             synchronized (Lock1) { | ||||||
|  |                 System.out.println("Thread 2: Holding lock 1..."); | ||||||
|  |                 try { | ||||||
|  |                     Thread.sleep(10); | ||||||
|  |                 } catch (InterruptedException e) { | ||||||
|  |                 } | ||||||
|  |                 System.out.println("Thread 2: Waiting for lock 2..."); | ||||||
|  |                 synchronized (Lock2) { | ||||||
|  |                     System.out.println("Thread 2: Holding lock 1 & 2..."); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user