├── chapter5 └── src │ ├── test │ ├── Test2.java │ └── Test1.java │ └── object │ ├── ObjectK.java │ ├── ObjectQ.java │ ├── ObjectR.java │ ├── ObjectS.java │ ├── ObjectT.java │ ├── ObjectU.java │ ├── ObjectV.java │ ├── ObjectW.java │ ├── ObjectX.java │ ├── ObjectY.java │ ├── ObjectZ.java │ ├── ObjectA.java │ ├── ObjectB.java │ ├── ObjectC.java │ ├── ObjectD.java │ ├── ObjectE.java │ ├── ObjectF.java │ ├── ObjectG.java │ ├── ObjectH.java │ ├── ObjectI.java │ ├── ObjectJ.java │ ├── ObjectL.java │ ├── ObjectM.java │ ├── ObjectN.java │ ├── ObjectO.java │ └── ObjectP.java ├── chapter6 └── src │ ├── test │ ├── Test2.java │ └── Test1.java │ └── object │ ├── ObjectH.java │ ├── ObjectI.java │ ├── ObjectM.java │ ├── ObjectN.java │ ├── ObjectO.java │ ├── ObjectJ.java │ ├── ObjectK.java │ ├── ObjectL.java │ ├── ObjectP.java │ ├── ObjectQ.java │ ├── ObjectR.java │ ├── ObjectS.java │ ├── ObjectT.java │ ├── ObjectU.java │ ├── ObjectV.java │ ├── ObjectW.java │ ├── ObjectX.java │ ├── ObjectY.java │ ├── ObjectZ.java │ ├── ObjectA.java │ ├── ObjectB.java │ ├── ObjectC.java │ ├── ObjectD.java │ ├── ObjectE.java │ ├── ObjectF.java │ └── ObjectG.java ├── chapter7 └── src │ ├── test │ ├── Test2.java │ └── Test1.java │ └── object │ ├── ObjectA.java │ ├── ObjectB.java │ ├── ObjectC.java │ └── ObjectD.java ├── chapter3 └── src │ ├── object1 │ ├── ObjectP.java │ ├── ObjectQ.java │ ├── ObjectR.java │ ├── ObjectS.java │ ├── ObjectT.java │ ├── ObjectU.java │ ├── ObjectV.java │ ├── ObjectW.java │ ├── ObjectX.java │ ├── ObjectY.java │ ├── ObjectZ.java │ ├── ObjectA.java │ ├── ObjectB.java │ ├── ObjectC.java │ ├── ObjectD.java │ ├── ObjectE.java │ ├── ObjectF.java │ ├── ObjectG.java │ ├── ObjectH.java │ ├── ObjectK.java │ ├── ObjectM.java │ ├── ObjectN.java │ ├── ObjectO.java │ ├── ObjectL.java │ ├── ObjectJ.java │ └── ObjectI.java │ ├── mythread1 │ ├── MythreadD.java │ ├── MythreadB.java │ ├── MythreadC.java │ └── MythreadA.java │ └── test │ ├── Test1.java │ └── Test2.java ├── chapter4 └── src │ ├── object1 │ ├── ObjectX.java │ ├── ObjectY.java │ ├── ObjectZ.java │ ├── ObjectA.java │ ├── ObjectB.java │ ├── ObjectC.java │ ├── ObjectD.java │ ├── ObjectE.java │ ├── ObjectF.java │ ├── ObjectG.java │ ├── ObjectH.java │ ├── ObjectI.java │ ├── ObjectJ.java │ ├── ObjectK.java │ ├── ObjectL.java │ ├── ObjectM.java │ ├── ObjectN.java │ ├── ObjectO.java │ ├── ObjectP.java │ ├── ObjectQ.java │ ├── ObjectR.java │ ├── ObjectS.java │ ├── ObjectT.java │ ├── ObjectU.java │ ├── ObjectV.java │ └── ObjectW.java │ ├── readme │ └── test │ ├── Test1.java │ ├── Test2.java │ └── Test3.java ├── chapter1 └── src │ ├── mythread │ ├── MyThread7.java │ ├── MyThread1.java │ ├── MyThread2.java │ ├── MyThread3.java │ ├── MyThread4.java │ ├── MyThread5.java │ ├── MyThread6.java │ ├── MyThread8.java │ └── MyThread9.java │ ├── test │ ├── Test1.java │ ├── Test2.java │ ├── Test3.java │ ├── Test4.java │ └── TestRunnable.java │ ├── other │ ├── MyObject.java │ ├── synchronizedObject │ │ ├── SynchronizedObject.java │ │ └── SynchronizedObject2.java │ └── login │ │ ├── Alogin.java │ │ ├── Blogin.java │ │ ├── test.java │ │ └── LoginServlet.java │ ├── mythread2 │ ├── MyThread1.java │ ├── MyThread2.java │ ├── MyThread3.java │ ├── MyThread4.java │ ├── MyThread6.java │ ├── MyThread7.java │ ├── MyThread8.java │ ├── MyThread9.java │ └── MyThread5.java │ ├── mythread3 │ ├── MyThread1.java │ ├── MyThread2.java │ ├── MyThread3.java │ ├── MyThread4.java │ ├── MyThread5.java │ ├── MyThread6.java │ ├── MyThread7.java │ ├── MyThread8.java │ └── MyThread9.java │ ├── mythread4 │ ├── MyThread1.java │ └── MyThread2.java │ └── myrunnable │ └── MyRunnable.java ├── chapter2 └── src │ ├── mythread2 │ ├── MyThread1.java │ ├── MyThread2.java │ ├── MyThread3.java │ ├── MyThread4.java │ ├── MyThread5.java │ ├── MyThread6.java │ ├── MyThread7.java │ └── MyThread8.java │ ├── otherObject2 │ ├── ObjectAB.java │ ├── MyObject1.java │ ├── MyObject2.java │ ├── MyObject3.java │ ├── MyObject4.java │ ├── MyObject5.java │ ├── MyObject6.java │ ├── MyObject7.java │ ├── MyObject8.java │ ├── MyObject9.java │ ├── ObejctAC.java │ ├── ObjectA.java │ ├── ObjectAA.java │ ├── ObjectAC.java │ ├── ObjectAD.java │ ├── ObjectAE.java │ ├── ObjectB.java │ ├── ObjectC.java │ ├── ObjectD.java │ ├── ObjectE.java │ ├── ObjectF.java │ ├── ObjectG.java │ ├── ObjectH.java │ ├── ObjectI.java │ ├── ObjectJ.java │ ├── ObjectK.java │ ├── ObjectL.java │ ├── ObjectM.java │ ├── ObjectN.java │ ├── ObjectO.java │ ├── ObjectP.java │ ├── ObjectQ.java │ ├── ObjectR.java │ ├── ObjectS.java │ ├── ObjectT.java │ ├── ObjectU.java │ ├── ObjectV.java │ ├── ObjectW.java │ ├── ObjectX.java │ ├── ObjectY.java │ └── ObjectZ.java │ ├── test │ ├── Test1.java │ ├── Test2.java │ ├── Test3.java │ └── Test4.java │ ├── mythread1 │ ├── MyThread1.java │ ├── MyThread2.java │ ├── MyThread3.java │ ├── MyThread4.java │ ├── MyThread5.java │ ├── MyThread6.java │ ├── MyThread7.java │ ├── MyThread8.java │ └── MyThread9.java │ ├── mythread3 │ ├── MyThread1.java │ ├── MyThread2.java │ ├── MyThread3.java │ └── MyThread4.java │ └── otherObject │ ├── MyObject.java │ ├── MyObject2.java │ ├── MyObject3.java │ ├── MyObject4.java │ ├── MyObject5.java │ ├── MyObject6.java │ ├── MyObject7.java │ ├── MyObject8.java │ ├── MyObject9.java │ ├── PublicVar.java │ ├── HasPrivateNum.java │ └── HasSelfPrivateNum.java └── README.md /chapter5/src/test/Test2.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | public class Test2 { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/test/Test2.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | public class Test2 { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter7/src/test/Test2.java: -------------------------------------------------------------------------------- 1 | package test; 2 | 3 | public class Test2 { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectH.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectH { 4 | } 5 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectI.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectI { 4 | } 5 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectM.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectM { 4 | } 5 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectN.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectN { 4 | } 5 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectO.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectO { 4 | } 5 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectP.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectP { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectQ.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectQ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectR.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectR { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectS.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectS { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectT.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectT { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectU.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectU { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectV.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectV { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectW.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectW { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectX.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectX { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectY.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectY { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectZ.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectZ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectX.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectX { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectY.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectY { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectZ.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectZ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectK.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectK { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectQ.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectQ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectR.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectR { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectS.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectS { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectT.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectT { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectU.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectU { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectV.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectV { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectW.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectW { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectX.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectX { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectY.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectY { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter5/src/object/ObjectZ.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectZ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectJ.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectJ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectK.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectK { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectL.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectL { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectP.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectP { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectQ.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectQ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectR.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectR { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectS.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectS { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectT.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectT { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectU.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectU { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectV.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectV { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectW.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectW { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectX.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectX { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectY.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectY { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter6/src/object/ObjectZ.java: -------------------------------------------------------------------------------- 1 | package object; 2 | 3 | public class ObjectZ { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread7.java: -------------------------------------------------------------------------------- 1 | package mythread; 2 | 3 | public class MyThread7 { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread1.java: -------------------------------------------------------------------------------- 1 | package mythread2; 2 | 3 | public class MyThread1 { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter3/src/mythread1/MythreadD.java: -------------------------------------------------------------------------------- 1 | package mythread1; 2 | 3 | public class MythreadD { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectAB.java: -------------------------------------------------------------------------------- 1 | package otherObject2; 2 | 3 | public class ObjectAB { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter4/src/readme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/readme -------------------------------------------------------------------------------- /chapter1/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/test/Test1.java -------------------------------------------------------------------------------- /chapter1/src/test/Test2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/test/Test2.java -------------------------------------------------------------------------------- /chapter1/src/test/Test3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/test/Test3.java -------------------------------------------------------------------------------- /chapter1/src/test/Test4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/test/Test4.java -------------------------------------------------------------------------------- /chapter2/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/test/Test1.java -------------------------------------------------------------------------------- /chapter2/src/test/Test2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/test/Test2.java -------------------------------------------------------------------------------- /chapter2/src/test/Test3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/test/Test3.java -------------------------------------------------------------------------------- /chapter2/src/test/Test4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/test/Test4.java -------------------------------------------------------------------------------- /chapter3/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/test/Test1.java -------------------------------------------------------------------------------- /chapter3/src/test/Test2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/test/Test2.java -------------------------------------------------------------------------------- /chapter4/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/test/Test1.java -------------------------------------------------------------------------------- /chapter4/src/test/Test2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/test/Test2.java -------------------------------------------------------------------------------- /chapter4/src/test/Test3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/test/Test3.java -------------------------------------------------------------------------------- /chapter5/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/test/Test1.java -------------------------------------------------------------------------------- /chapter6/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/test/Test1.java -------------------------------------------------------------------------------- /chapter7/src/test/Test1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter7/src/test/Test1.java -------------------------------------------------------------------------------- /chapter1/src/other/MyObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/other/MyObject.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectA.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectB.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectC.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectD.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectE.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectE.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectF.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectF.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectG.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectG.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectH.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectH.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectI.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectJ.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectL.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectL.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectM.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectM.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectN.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectN.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectO.java -------------------------------------------------------------------------------- /chapter5/src/object/ObjectP.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter5/src/object/ObjectP.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectA.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectB.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectC.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectD.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectE.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectE.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectF.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectF.java -------------------------------------------------------------------------------- /chapter6/src/object/ObjectG.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter6/src/object/ObjectG.java -------------------------------------------------------------------------------- /chapter7/src/object/ObjectA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter7/src/object/ObjectA.java -------------------------------------------------------------------------------- /chapter7/src/object/ObjectB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter7/src/object/ObjectB.java -------------------------------------------------------------------------------- /chapter7/src/object/ObjectC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter7/src/object/ObjectC.java -------------------------------------------------------------------------------- /chapter7/src/object/ObjectD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter7/src/object/ObjectD.java -------------------------------------------------------------------------------- /chapter1/src/test/TestRunnable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/test/TestRunnable.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectA.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectB.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectC.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectD.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectE.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectE.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectF.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectF.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectG.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectG.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectH.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectH.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectK.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectK.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectM.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectM.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectN.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/object1/ObjectN.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectA.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectB.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectC.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectD.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectE.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectE.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectF.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectF.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectG.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectG.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectH.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectH.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectI.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectJ.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectK.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectK.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectL.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectL.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectM.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectM.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectN.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectN.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectO.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectP.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectP.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectQ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectQ.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectR.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectR.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectS.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectS.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectT.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectT.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectU.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectU.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectV.java -------------------------------------------------------------------------------- /chapter4/src/object1/ObjectW.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter4/src/object1/ObjectW.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread1.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread2.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread3.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread4.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread5.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread6.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread8.java -------------------------------------------------------------------------------- /chapter1/src/mythread/MyThread9.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread/MyThread9.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread1.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread2.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread3.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread4.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread6.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread7.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread8.java -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread9.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread2/MyThread9.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread1.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread2.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread3.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread4.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread5.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread6.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread7.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread8.java -------------------------------------------------------------------------------- /chapter1/src/mythread3/MyThread9.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread3/MyThread9.java -------------------------------------------------------------------------------- /chapter1/src/mythread4/MyThread1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread4/MyThread1.java -------------------------------------------------------------------------------- /chapter1/src/mythread4/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/mythread4/MyThread2.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread1.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread2.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread3.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread4.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread5.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread6.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread7.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread8.java -------------------------------------------------------------------------------- /chapter2/src/mythread1/MyThread9.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread1/MyThread9.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread2.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread3.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread4.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread5.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread6.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread7.java -------------------------------------------------------------------------------- /chapter2/src/mythread2/MyThread8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread2/MyThread8.java -------------------------------------------------------------------------------- /chapter2/src/mythread3/MyThread1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread3/MyThread1.java -------------------------------------------------------------------------------- /chapter2/src/mythread3/MyThread2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread3/MyThread2.java -------------------------------------------------------------------------------- /chapter2/src/mythread3/MyThread3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread3/MyThread3.java -------------------------------------------------------------------------------- /chapter2/src/mythread3/MyThread4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/mythread3/MyThread4.java -------------------------------------------------------------------------------- /chapter3/src/mythread1/MythreadB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter3/src/mythread1/MythreadB.java -------------------------------------------------------------------------------- /chapter1/src/myrunnable/MyRunnable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/myrunnable/MyRunnable.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject2.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject3.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject4.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject5.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject6.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject7.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject8.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/MyObject9.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/MyObject9.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/PublicVar.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/PublicVar.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject1.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject2.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject3.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject4.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject5.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject6.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject7.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject7.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject8.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject8.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/MyObject9.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/MyObject9.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObejctAC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObejctAC.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectA.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectAA.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectAA.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectAC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectAC.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectAD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectAD.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectAE.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectAE.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectB.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectB.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectC.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectD.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectD.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectE.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectE.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectF.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectF.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectG.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectG.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectH.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectH.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectI.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectJ.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectK.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectK.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectL.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectL.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectM.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectM.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectN.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectN.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectO.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectP.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectP.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectQ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectQ.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectR.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectR.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectS.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectS.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectT.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectT.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectU.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectU.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectV.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectW.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectW.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectX.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectX.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectY.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectY.java -------------------------------------------------------------------------------- /chapter2/src/otherObject2/ObjectZ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject2/ObjectZ.java -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectO.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectO { 4 | 5 | public static ObjectN t1 = new ObjectN(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectL.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | public class ObjectL { 3 | 4 | public static ThreadLocal t1 = new ThreadLocal(); 5 | 6 | } 7 | -------------------------------------------------------------------------------- /chapter2/src/otherObject/HasPrivateNum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/HasPrivateNum.java -------------------------------------------------------------------------------- /chapter2/src/otherObject/HasSelfPrivateNum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter2/src/otherObject/HasSelfPrivateNum.java -------------------------------------------------------------------------------- /chapter1/src/other/synchronizedObject/SynchronizedObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/other/synchronizedObject/SynchronizedObject.java -------------------------------------------------------------------------------- /chapter1/src/other/synchronizedObject/SynchronizedObject2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/levonmo/Java-Multi-thread-Programming/HEAD/chapter1/src/other/synchronizedObject/SynchronizedObject2.java -------------------------------------------------------------------------------- /chapter1/src/other/login/Alogin.java: -------------------------------------------------------------------------------- 1 | package other.login; 2 | 3 | public class Alogin extends Thread { 4 | 5 | @Override 6 | public void run() { 7 | LoginServlet.dopost("a", "aa"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter1/src/other/login/Blogin.java: -------------------------------------------------------------------------------- 1 | package other.login; 2 | 3 | public class Blogin extends Thread { 4 | 5 | @Override 6 | public void run() { 7 | LoginServlet.dopost("b", "bb"); 8 | } 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter1/src/other/login/test.java: -------------------------------------------------------------------------------- 1 | package other.login; 2 | 3 | public class test { 4 | public static void main(String[] args) { 5 | Alogin alogin = new Alogin(); 6 | alogin.start(); 7 | Blogin blogin = new Blogin(); 8 | blogin.start(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectJ.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectJ { 4 | 5 | private ObjectH objectH; 6 | 7 | public ObjectJ(ObjectH objectH) { 8 | this.objectH = objectH; 9 | } 10 | 11 | public void pushService(){ 12 | objectH.push(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter1/src/mythread2/MyThread5.java: -------------------------------------------------------------------------------- 1 | package mythread2; 2 | 3 | // 4 | public class MyThread5 extends Thread { 5 | 6 | @Override 7 | public void run() { 8 | super.run(); 9 | for(int i=0; i < 500000; i++){ 10 | System.out.println("i=" + (i+1)); 11 | } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapter3/src/object1/ObjectI.java: -------------------------------------------------------------------------------- 1 | package object1; 2 | 3 | public class ObjectI { 4 | 5 | private ObjectH objectH; 6 | 7 | public ObjectI(ObjectH objectH) { 8 | this.objectH = objectH; 9 | } 10 | 11 | public void popService(){ 12 | System.out.println("pop=" + objectH.pop()); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter3/src/mythread1/MythreadC.java: -------------------------------------------------------------------------------- 1 | package mythread1; 2 | 3 | public class MythreadC extends Thread { 4 | 5 | private MythreadB mythreadB; 6 | 7 | public MythreadC(MythreadB mythreadB) { 8 | this.mythreadB = mythreadB; 9 | } 10 | 11 | @Override 12 | public void run() { 13 | // TODO Auto-generated method stub 14 | super.run(); 15 | mythreadB.methodA(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter3/src/mythread1/MythreadA.java: -------------------------------------------------------------------------------- 1 | package mythread1; 2 | 3 | public class MythreadA extends Thread { 4 | 5 | private MythreadB mythreadB; 6 | 7 | public MythreadA(MythreadB mythreadB) { 8 | this.mythreadB = mythreadB; 9 | } 10 | 11 | @Override 12 | public void run() { 13 | // TODO Auto-generated method stub 14 | super.run(); 15 | try { 16 | synchronized (mythreadB) { 17 | mythreadB.start(); 18 | Thread.sleep(6000); 19 | mythreadB.join(); 20 | } 21 | } catch (InterruptedException e) { 22 | e.printStackTrace(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /chapter1/src/other/login/LoginServlet.java: -------------------------------------------------------------------------------- 1 | package other.login; 2 | 3 | public class LoginServlet { 4 | private static String usernameREF; 5 | private static String passwordREF; 6 | 7 | synchronized public static void dopost(String username,String password){ 8 | try { 9 | usernameREF = username; 10 | if(username.equals("a")){ 11 | Thread.sleep(5000); 12 | } 13 | passwordREF = password; 14 | System.out.println("username=" + usernameREF + " " + "password=" + passwordREF); 15 | } catch (InterruptedException e) { 16 | e.printStackTrace(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | README 2 | =========================== 3 | 《java多线程编程核心技术》笔记 4 | 这本书的demo很多,讲的比较清晰,容易理解,缺点就是感觉有很多内容重复,重重复复讲一个东西 5 | 看书的笔记 6 | * 目录下面有超链接可以直接点进去 7 | * 第一章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter1/src/test/Test1.java 8 | * 第二章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter2/src/test/Test1.java 9 | * 第三章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter3/src/test/Test1.java 10 | * 第四章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter4/src/test/Test1.java 11 | * 第五章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter5/src/test/Test1.java 12 | * 第六章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter6/src/test/Test1.java 13 | * 第七章: https://github.com/mowenlong/Java-Multi-thread-Programming/blob/master/chapter7/src/test/Test1.java 14 | 15 | **** 16 | 17 | 18 | **** 19 | ## 目录 20 | * 第一章:Java多线程技能 21 | * 初始多线程 22 | * [使用多线程,启动一个多线程的几种方式](/chapter1/src/test/Test1.java) 23 | * 线程的随机性 24 | * 实例变量与线程安全 25 | * 留意i——与System.out.println()的异常 26 | * currentThread() 27 | * start()和run() 28 | * [线程api](chapter1/src/test/Test2.java) 29 | * isAlive() 30 | * sleep() 31 | * interrupt()与isInterrupted() 32 | * getId() 33 | * [停止线程1](chapter1/src/test/Test2.java) 34 | * 判断线程是否是停止状态 35 | * 能停止的线程——异常法 36 | * 在沉睡中停止 37 | * [停止线程2](/chapter1/src/test/Test3.java) 38 | * 暴力停止,使用stop()方法 39 | * 释放锁的不良后果 40 | * 使用return停止线程 41 | * [暂停线程](/chapter1/src/test/Test3.java) 42 | * suspend与resume方法的使用 43 | * suspend与resume方法的缺点——独占 44 | * suspend与resume方法的缺点——不同步 45 | * yield()方法 46 | * 线程的优先级 47 | * [守护线程](/chapter1/src/test/Test4.java) 48 | * 守护线程 49 | * 线程具有优先级的 50 | 51 | 52 | * 第二章:对象及变量的并发访问 53 | * [synchronized同步方法1](/chapter2/src/test/Test1.java) 54 | * 方法内的变量为线程安全 55 | * 实例变量非线程安全 56 | * 多个对象多个锁 57 | * synchronized方法与锁对象 58 | * 在一个类中一个是同步方法,一个不是同步方法 59 | * [synchronized同步方法2](/chapter2/src/test/Test2.java) 60 | * 脏读 61 | * synchronized锁重入 62 | * 可重入锁的父子类继承 63 | * 出现异常,锁自动释放 64 | * 同步不具有继承性 65 | * 使用同步代码块 66 | * [synchronized同步语句块](/chapter2/src/test/Test3.java) 67 | * 使用同步方法的弊端 68 | * 同步代码块,一半同步一半异步 69 | * synchronized代码块间的同步性 70 | * 验证同步synchronized(this)代码块是锁定当前对象的 71 | * 将任意对象作为对象监视器 72 | * 同步方法与同步方法代码块会相互阻塞 73 | * 私有变量是线程安全 74 | * 将任意对象作为对象监视器,对象监视器必须是同一个对象 75 | * 多个线程调用同一个方法是随机的 76 | * 其他线程执行X对象方法里面的synchronized(this)代码块 77 | * 静态同步synchronized方法,在static方法上加上synchronized代码块 78 | * 验证:synchronized+static 与 synchronized+非static 不是同一把锁 79 | * 使用Class锁: 两个线程对两个对象实例,结果是同步执行的 80 | * 同步synchronized(class)代码块 81 | * [数据类型String的常量池特性](/chapter2/src/test/Test3.java) 82 | * 数据类型String的常量池特性(1) 83 | * 数据类型String的常量池特性(2):synchronized同步块的使用 84 | * 使用new Object()来作为同步代码块的对象 85 | * 同步synchronized方法无限等待与解决 86 | * 线程的"假死"现象 87 | * [内置类与静态内置类](/chapter2/src/test/Test4.java) 88 | * 静态的内置类 89 | * 内置类与同步 90 | * 锁对象的改变 91 | * [volatile关键字](/chapter2/src/test/Test4.java) 92 | * 无法停止的线程 93 | * 解决同步死循环 94 | * 使用volatile关键字 95 | * volatile非原字性的特征 96 | * synchronized代码块有volatile同步功能(1):停不下的循环 97 | * 第三章:线程间通信 98 | * [等待/通知机制](/chapter3/src/test/Test1.java) 99 | * wait/notify的引入:不使用等待/通知机制实现线程间的通信,在这里也添加了volatile关键字 100 | * 等待/通知机制的实现:wait使线程停止运行,而Notify可以使停止的线程继续运行 101 | * 例子 102 | * 方法wait()锁释放与notify()锁不释放 103 | * 当interrupt方法遇到wait方法 104 | * 只通知一个线程 105 | * 方法wait(long)的使用 106 | * [生产者/消费者模式实现](/chapter3/src/test/Test2.java) 107 | * 多生产者与多消费者 108 | * 一生产与一消费 109 | * 方法join的使用:铺垫 110 | * 用join()方法解决问题 111 | * 方法join与异常 112 | * 方法join(long)的使用 113 | * join(long)与sleep(long)的区别 114 | * [类ThreadLocal的使用](/chapter3/src/test/Test2.java) 115 | * 方法get()与null 116 | * 验证线程变量的隔离性 117 | * 解决get()返回null问题 118 | * 再次验证线程变量的隔离性 119 | * 类InheritableThreadLocal的使用 120 | * [第四章:Lock的使用](/chapter4/src/test/Test1.java) 121 | * [使用ReentrantLock类](/chapter4/src/test/Test1.java) 122 | * 使用ReentrantLock实现同步:测试一 123 | * 使用ReentrantLock实现同步:测试二 124 | * 使用Condition实现等待/通知错误用法与解决 125 | * 正确使用Condition实现等待/通知 126 | * 使用多个Condition实现通知部分线程:错误的用法 127 | * 使用多个Condition实现通知部分线程:正确的用法 128 | * 实现生产者/消费者模式:一对一交替打印 129 | * 实现生产者/消费者模式:多对多交替打印 130 | * 公平锁与非公平锁 131 | * 方法int getHoldCount():保持查询当前线程保持此锁定的个数,也就是调用lock()方法的次数 132 | *方法int getQueueLength():返回正等待获取此锁的线程估计数 133 | * 方法int getWaitQueueLength(Condition condition) 的作用是返回等待与此锁定给定条件的Condition的线程的估计数 134 | * [方法boolean hasQueuedThread(Thread thread):的作用是查询指定线程是否正在等待获取此锁](/chapter4/src/test/Test2.java) 135 | * 方法boolean hasWaiters(Condition condition):作用是查询是否有线程正在等待与此锁有关的condition条件 136 | * 方法boolean isFair():作用是判断是不是公平锁 137 | * 方法boolean isHeldByCurrentThread():作用是查询当前的线程是不是保持此锁定 138 | * 方法boolean isLocked()的作用是查询此锁定是否由任意线程保持 139 | * 方法lockInterruptibly():如果当前线程未被中断,则获取锁定,如果已经被中断则出现异常 140 | * 方法boolean tryLock()的作用是:仅在调用时锁定未被另一个线程保持的情况下,才获取该锁定 141 | * 方法awaitUninterruptibly()的使用, 142 | * [使用ReentrantReadWriteLock类](/chapter4/src/test/Test3.java) 143 | * 类ReentrantReadWriteLock的使用:读读共享 144 | * 类ReentrantReadWriteLock的使用:写写互斥 145 | * 类ReentrantReadWriteLock的使用:读写互斥 146 | * [第五章:定时器Timer](/chapter5/src/test/Test1.java) 147 | * [第六章:单例模式与多线程](/chapter6/src/test/Test1.java) 148 | * 立即加载/"饿汉模式" 149 | * 延时加载/"懒汉模式" 150 | * 使用DCL双检查锁机制 151 | * 使用静态内置类实现单例模式 152 | * 序列化与反序列化的单例模式实现 153 | * 使用enum枚举数据类型实现单例模式 154 | * 第七章:拾遗增补 155 | * [线程的状态](/chapter7/src/test/Test1.java) 156 | * 验证:new,runnable,terminated(结束) 157 | * 验证timed_waiting:线程的状态timed_waiting表示线程执行了Thread.sleep()方法,呈等待状态,等待时间到了,继续向下运行 158 | * 验证blocked:出现在某一个线程在等待锁的时候 159 | * 验证WAITING:是线程执行wait()方法后所处的状态 160 | * [线程组](/chapter7/src/test/Test1.java) 161 | * 线程对象关联线程组:1级关联 162 | 163 | --------------------------------------------------------------------------------