Mercurial > hg > y16 > e165725 > os > ex5.2
changeset 7:f81f6dfc0cc5
change sleep
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 11 Dec 2012 16:40:31 +0900 |
parents | 595de657cbaf |
children | 9ee04de7718a |
files | build.xml src/ThreadTest.mf src/threadTest/Client.java src/threadTest/Server.java src/threadTest/TestThread.java |
diffstat | 5 files changed, 84 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.xml Tue Dec 11 16:40:31 2012 +0900 @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="ThreadTest" default="ThreadTest" basedir="."> + + + <target name="build"> + <mkdir dir="build"/> + <javac encoding="UTF-8" srcdir="src" destdir="build"> + <sourcepath> + <pathelement path="src"/> + </sourcepath> + </javac> + </target> + + <!-- run --> + <target name="run" depends="build"> + <java classname="${main}" fork="yes" > + <jvmarg value="-Dfile.encoding=UTF8"/> + <classpath> + <pathelement path="build"/> + </classpath> + </java> + </target> + + <!-- test --> + <target name="test" depends="build"> + <java classname="${test}" fork="yes" > + <jvmarg value="-Dfile.encoding=UTF8"/> + <classpath> + <pathelement path="build"/> + </classpath> + </java> + </target> + + <target name="jar" depends="build" > + <jar jarfile="build/ThreadTest.jar" basedir="build" manifest="src/ThreadTest.mf"/> + </target> + + <!-- clean --> + <target name="clean"> + <delete> + <fileset dir="${output}"> + <include name="**/*.class"/> + </fileset> + </delete> + </target> + <!-- tar zcvf JavaLite.tgz \-\-exclude CVS JavaLite --> + + +</project> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ThreadTest.mf Tue Dec 11 16:40:31 2012 +0900 @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Created-By: 0.1.0 (Shinji KONO @ University of the Ryukyus) +Main-Class: threadTest.TestThread
--- a/src/threadTest/Client.java Tue Dec 13 14:33:21 2011 +0900 +++ b/src/threadTest/Client.java Tue Dec 11 16:40:31 2012 +0900 @@ -8,11 +8,6 @@ } public void run() { - try { - server.work(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + server.slow_work(); } }
--- a/src/threadTest/Server.java Tue Dec 13 14:33:21 2011 +0900 +++ b/src/threadTest/Server.java Tue Dec 11 16:40:31 2012 +0900 @@ -3,31 +3,39 @@ public class Server { int count = 0; - void work() throws InterruptedException { - System.err.println("server-enter: count="+count); + void work() { + //System.err.println("server-enter: count="+count); count ++; - System.err.println("server-leave: count="+count); + //System.err.println("server-leave: count="+count); } - void slow_work() throws InterruptedException { + void slow_work() { int tmp; tmp = count ; - Thread.sleep(500); - System.err.println("server-enter: count="+count); + //sloop(); + //System.err.println("server-enter: count="+count); tmp ++; - Thread.sleep(500); + //sloop(); count = tmp ; - System.err.println("server-leave: count="+count); + //System.err.println("server-leave: count="+count); } + + private void sloop() { + try { + Thread.sleep(0); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } - synchronized void sync_work() throws InterruptedException { + synchronized void sync_work() { int tmp; tmp = count ; - Thread.sleep(500); - System.err.println("server-enter: count="+count); + //Thread.sleep(500); + //System.err.println("server-enter: count="+count); tmp ++; - Thread.sleep(500); + //Thread.sleep(500); count = tmp ; - System.err.println("server-leave: count="+count); + //System.err.println("server-leave: count="+count); } }
--- a/src/threadTest/TestThread.java Tue Dec 13 14:33:21 2011 +0900 +++ b/src/threadTest/TestThread.java Tue Dec 11 16:40:31 2012 +0900 @@ -4,10 +4,12 @@ Server t1 = new Server(); Client t2 = new Client(t1); Client t3 = new Client(t1); - + public static void main(String arg[]) throws InterruptedException { - TestThread test = new TestThread(); - test.test(); + //for(int i = 0; i<10000;i++) { + TestThread test = new TestThread(); + test.test(); + //} } public void test() throws InterruptedException { @@ -15,8 +17,10 @@ t3.start(); t2.join(); t3.join(); - - System.err.println("testThread: count = "+t1.count); + + if (t1.count!=2) + System.err.println("testThread: count = "+t1.count); + assert(t1.count==2); } }