changeset 4:9b3876d1a253

check
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 09 Jul 2011 11:40:48 +0900
parents 1b818f8e63ac
children 5498b5524aa7
files src/deadLockTest/Client.java src/deadLockTest/Server.java src/deadLockTest/TestDeadLock.java src/threadTest/TestThread.java
diffstat 4 files changed, 30 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/deadLockTest/Client.java	Tue Dec 16 15:58:46 2008 +0900
+++ b/src/deadLockTest/Client.java	Sat Jul 09 11:40:48 2011 +0900
@@ -3,23 +3,25 @@
 public class Client extends Thread {
 	Server server1;
 	Server server2;
+	String name;
 	
-	Client(Server hotel, Server plane) {
+	Client(String name, Server hotel, Server plane) {
 		this.server1 = hotel;
 		this.server2 = plane;
+		this.name = name;
 	}
 	
 	public void run() {
 		try {
-			server1.lock();
-			server2.lock();
-			server1.reserve();
-			server2.reserve();
-			server1.release();
-			server2.release();
+			server1.lock(name);
+			server2.lock(name);
+			server1.reserve(name);
+			server2.reserve(name);
+			server1.release(name);
+			server2.release(name);
 		} catch (InterruptedException e) {
-			System.out.println("Error occured.");
+			System.out.println(name + " Error occured.");
 		}
-		System.out.println("Reserve conmpleted.");
+		System.out.println(name + "Reserve conmpleted.");
 	}
 }
--- a/src/deadLockTest/Server.java	Tue Dec 16 15:58:46 2008 +0900
+++ b/src/deadLockTest/Server.java	Sat Jul 09 11:40:48 2011 +0900
@@ -3,21 +3,29 @@
 public class Server {
 	int count = 0;
 	private boolean lock;
+	private String sname;
 	
-	synchronized void reserve() {
-		System.err.println("server-enter: count="+count);
-		count++;
-		System.err.println("server-leave: count="+count);
+	public Server(String name) {
+		this.sname = name;
 	}
 
-	public synchronized void lock() throws InterruptedException {
+	synchronized void reserve(String name) {
+		System.err.println(name + " server-enter "+sname+" : count="+count);
+		count++;
+		System.err.println(name + " server-leave "+sname+" : count="+count);
+	}
+
+	public synchronized void lock(String name) throws InterruptedException {
 		while (lock) {
+			System.err.println(name + " is wating "+sname);
 			wait();
 		}
 		lock = true;
+		System.err.println(name + " gets lock "+ sname);	
 	}
 
-	public synchronized void release() {
+	public synchronized void release(String name) {
+		System.err.println(name + " releases lock "+sname);	
 		lock = false;
 		notify();
 	}
--- a/src/deadLockTest/TestDeadLock.java	Tue Dec 16 15:58:46 2008 +0900
+++ b/src/deadLockTest/TestDeadLock.java	Sat Jul 09 11:40:48 2011 +0900
@@ -1,10 +1,10 @@
 package deadLockTest;
 
 public class TestDeadLock {
-	Server hotel = new Server();
-	Server plane = new Server();
-	Client t2 = new Client(plane,hotel);
-	Client t3 = new Client(plane,hotel);
+	Server hotel = new Server("Hilton");
+	Server plane = new Server("JAL");
+	Client t2 = new Client("Steve", plane,hotel);
+	Client t3 = new Client("Tedd", hotel,plane);
 	
 	public static void main(String arg[]) throws InterruptedException  {
 		TestDeadLock test = new TestDeadLock();
--- a/src/threadTest/TestThread.java	Tue Dec 16 15:58:46 2008 +0900
+++ b/src/threadTest/TestThread.java	Sat Jul 09 11:40:48 2011 +0900
@@ -15,7 +15,7 @@
 		t3.start();
 		t2.join();
 		t3.join();
-
+		
 		System.err.println("testThread: count = "+t1.count);
 	}