Mercurial > hg > y16 > e165725 > os > ex5.2
changeset 11:4a4cc3c3b006 default tip
add figs
author | Masakiyo Okuhma <e165725@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 31 Jan 2018 17:23:14 +0900 |
parents | 272cfe639e2f |
children | |
files | figs/ThreadTest.pu figs/ThreadTest.svg src/main/java/deadLockTest/TestDeadLock.java src/main/java/threadTest/Client.java src/main/java/threadTest/Server.java src/main/java/threadTest/TestThread.java |
diffstat | 6 files changed, 97 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figs/ThreadTest.pu Wed Jan 31 17:23:14 2018 +0900 @@ -0,0 +1,37 @@ +@startuml test.svg +skinparam shadowing false +title ThreadTest + +participant ThreadTest as ThreadTest +create s0 +ThreadTest -> s0 :new() + +create t1 +ThreadTest -> t1 :new() + +create t2 +ThreadTest -> t2 :new() + +create t3 +ThreadTest -> t3 :new() + +ThreadTest -> t1 :start() +activate t1 +ThreadTest -> t2 :start() +activate t2 +ThreadTest -> t3 :start() +activate t3 + +t1 -> ThreadTest :stringWork() +t2 -> ThreadTest :stringWork() +t3 -> ThreadTest :stringWork() + +t1 --> ThreadTest +deactivate t1 +t2 --> ThreadTest +deactivate t2 +t3 --> ThreadTest +deactivate t3 + +ThreadTest -> s0 :showResultAtomc() +@enduml \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/figs/ThreadTest.svg Wed Jan 31 17:23:14 2018 +0900 @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="538px" preserveAspectRatio="none" style="width:339px;height:538px;" version="1.1" viewBox="0 0 339 538" width="339px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="127" y="23.5352">ThreadTest</text><rect fill="#FFFFFF" height="160.8633" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="233" y="261.9297"/><rect fill="#FFFFFF" height="145.5527" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="271" y="291.2402"/><rect fill="#FFFFFF" height="130.2422" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="309" y="320.5508"/><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="30" x="184" y="74.9766"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="16" x="191" y="95.5117">s0</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="224" y="116.4648"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="231" y="137">t1</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="262" y="157.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="269" y="178.4883">t2</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="300" y="199.4414"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="307" y="219.9766">t3</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="54" x2="54" y1="64.9766" y2="498.1035"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="199" x2="199" y1="105.7207" y2="498.1035"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="238" x2="238" y1="147.209" y2="498.1035"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="276" x2="276" y1="188.6973" y2="498.1035"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="314" x2="314" y1="230.1855" y2="498.1035"/><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="8" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="15" y="54.0234">ThreadTest</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="8" y="497.1035"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="15" y="517.6387">ThreadTest</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="30" x="184" y="497.1035"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="16" x="191" y="517.6387">s0</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="224" y="497.1035"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="231" y="517.6387">t1</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="262" y="497.1035"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="269" y="517.6387">t2</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="300" y="497.1035"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="307" y="517.6387">t3</text><rect fill="#FFFFFF" height="160.8633" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="233" y="261.9297"/><rect fill="#FFFFFF" height="145.5527" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="271" y="291.2402"/><rect fill="#FFFFFF" height="130.2422" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="309" y="320.5508"/><polygon fill="#A80036" points="172,91.9766,182,95.9766,172,99.9766,176,95.9766" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="178" y1="95.9766" y2="95.9766"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="61" y="91.5449">new()</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="30" x="184" y="74.9766"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="16" x="191" y="95.5117">s0</text><polygon fill="#A80036" points="212,133.4648,222,137.4648,212,141.4648,216,137.4648" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="218" y1="137.4648" y2="137.4648"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="61" y="133.0332">new()</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="224" y="116.4648"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="231" y="137">t1</text><polygon fill="#A80036" points="250,174.9531,260,178.9531,250,182.9531,254,178.9531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="256" y1="178.9531" y2="178.9531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="61" y="174.5215">new()</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="262" y="157.9531"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="269" y="178.4883">t2</text><polygon fill="#A80036" points="288,216.4414,298,220.4414,288,224.4414,292,220.4414" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="294" y1="220.4414" y2="220.4414"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="61" y="216.0098">new()</text><rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="28" x="300" y="199.4414"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="14" x="307" y="219.9766">t3</text><polygon fill="#A80036" points="221,257.9297,231,261.9297,221,265.9297,225,261.9297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="227" y1="261.9297" y2="261.9297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="37" x="61" y="257.498">start()</text><polygon fill="#A80036" points="259,287.2402,269,291.2402,259,295.2402,263,291.2402" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="265" y1="291.2402" y2="291.2402"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="37" x="61" y="286.8086">start()</text><polygon fill="#A80036" points="297,316.5508,307,320.5508,297,324.5508,301,320.5508" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="303" y1="320.5508" y2="320.5508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="37" x="61" y="316.1191">start()</text><polygon fill="#A80036" points="65,345.8613,55,349.8613,65,353.8613,61,349.8613" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59" x2="232" y1="349.8613" y2="349.8613"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="71" y="345.4297">stringWork()</text><polygon fill="#A80036" points="65,375.1719,55,379.1719,65,383.1719,61,379.1719" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59" x2="270" y1="379.1719" y2="379.1719"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="71" y="374.7402">stringWork()</text><polygon fill="#A80036" points="65,404.4824,55,408.4824,65,412.4824,61,408.4824" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59" x2="308" y1="408.4824" y2="408.4824"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="77" x="71" y="404.0508">stringWork()</text><polygon fill="#A80036" points="65,418.793,55,422.793,65,426.793,61,422.793" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="59" x2="237" y1="422.793" y2="422.793"/><polygon fill="#A80036" points="65,432.793,55,436.793,65,440.793,61,436.793" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="59" x2="275" y1="436.793" y2="436.793"/><polygon fill="#A80036" points="65,446.793,55,450.793,65,454.793,61,450.793" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="59" x2="313" y1="450.793" y2="450.793"/><polygon fill="#A80036" points="187,475.793,197,479.793,187,483.793,191,479.793" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="54" x2="193" y1="479.793" y2="479.793"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="61" y="475.3613">showResultAtomc()</text><!-- +@startuml test.svg +skinparam shadowing false +title ThreadTest + +participant ThreadTest as ThreadTest +create s0 +ThreadTest -> s0 :new() + +create t1 +ThreadTest -> t1 :new() + +create t2 +ThreadTest -> t2 :new() + +create t3 +ThreadTest -> t3 :new() + +ThreadTest -> t1 :start() +activate t1 +ThreadTest -> t2 :start() +activate t2 +ThreadTest -> t3 :start() +activate t3 + +t1 -> ThreadTest :stringWork() +t2 -> ThreadTest :stringWork() +t3 -> ThreadTest :stringWork() + +t1 - -> ThreadTest +deactivate t1 +t2 - -> ThreadTest +deactivate t2 +t3 - -> ThreadTest +deactivate t3 + +ThreadTest -> s0 :showResultAtomc() +@enduml + +PlantUML version 1.2018.01(Mon Jan 29 03:08:22 JST 2018) +(GPL source distribution) +Java Runtime: Java(TM) SE Runtime Environment +JVM: Java HotSpot(TM) 64-Bit Server VM +Java Version: 1.8.0_121-b13 +Operating System: Mac OS X +OS Version: 10.13.2 +Default Encoding: UTF-8 +Language: ja +Country: JP +--></g></svg> \ No newline at end of file
--- a/src/main/java/deadLockTest/TestDeadLock.java Tue Dec 19 14:26:35 2017 +0900 +++ b/src/main/java/deadLockTest/TestDeadLock.java Wed Jan 31 17:23:14 2018 +0900 @@ -19,8 +19,9 @@ t3.join(); System.err.println( - "Plane = "+plane.count+ - " Hotel = "+hotel.count); + "Plane = " + plane.count + + " Hotel = " + hotel.count); + } }
--- a/src/main/java/threadTest/Client.java Tue Dec 19 14:26:35 2017 +0900 +++ b/src/main/java/threadTest/Client.java Wed Jan 31 17:23:14 2018 +0900 @@ -9,7 +9,7 @@ } public void run() { - server.slow_work(); + server.sync_work(); } public void run1() {
--- a/src/main/java/threadTest/Server.java Tue Dec 19 14:26:35 2017 +0900 +++ b/src/main/java/threadTest/Server.java Wed Jan 31 17:23:14 2018 +0900 @@ -44,7 +44,7 @@ } - synchronized void stringWork(String s) { + void stringWork(String s) { sharedString += s; } @@ -55,9 +55,10 @@ } void showResult() { - if (count != 2) + if (count != 3) System.err.println("testThread: count = " + count); - assert (count == 2); + assert (count == 3); + //System.out.println(count); } void showResultAtomc() {
--- a/src/main/java/threadTest/TestThread.java Tue Dec 19 14:26:35 2017 +0900 +++ b/src/main/java/threadTest/TestThread.java Wed Jan 31 17:23:14 2018 +0900 @@ -22,7 +22,7 @@ t2.join(); t3.join(); s0.showResult(); - // s0.showResultAtomc(); - // s0.showResultSting(); + //s0.showResultAtomc(); + //s0.showResultSting(); } }