diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..454757c Binary files /dev/null and b/.DS_Store differ diff --git a/concurrency/src/main/java/AppendixA/Main.java b/src/main/java/AppendixA/Main.java similarity index 86% rename from concurrency/src/main/java/AppendixA/Main.java rename to src/main/java/AppendixA/Main.java index 1fc6c3f..ebfb1b9 100644 --- a/concurrency/src/main/java/AppendixA/Main.java +++ b/src/main/java/AppendixA/Main.java @@ -1,4 +1,4 @@ -package AppendixA; +package main.java.AppendixA; public class Main { public static void main(String[] args) { diff --git a/concurrency/src/main/java/AppendixA/MyFrame.java b/src/main/java/AppendixA/MyFrame.java similarity index 96% rename from concurrency/src/main/java/AppendixA/MyFrame.java rename to src/main/java/AppendixA/MyFrame.java index ee89266..7e8fa87 100644 --- a/concurrency/src/main/java/AppendixA/MyFrame.java +++ b/src/main/java/AppendixA/MyFrame.java @@ -1,4 +1,4 @@ -package AppendixA; +package main.java.AppendixA; import javax.swing.JFrame; import javax.swing.JButton; diff --git a/concurrency/src/main/java/Balking/Q5/TestThread.java b/src/main/java/Balking/Q5/TestThread.java similarity index 88% rename from concurrency/src/main/java/Balking/Q5/TestThread.java rename to src/main/java/Balking/Q5/TestThread.java index 243a58c..2c4466f 100644 --- a/concurrency/src/main/java/Balking/Q5/TestThread.java +++ b/src/main/java/Balking/Q5/TestThread.java @@ -1,4 +1,4 @@ -package Balking.Q5; +package main.java.Balking.Q5; public class TestThread extends Thread { public void run() { diff --git a/concurrency/src/main/java/Balking/Sample/ChangerThread.java b/src/main/java/Balking/Sample/ChangerThread.java similarity index 100% rename from concurrency/src/main/java/Balking/Sample/ChangerThread.java rename to src/main/java/Balking/Sample/ChangerThread.java diff --git a/concurrency/src/main/java/Immutable/A6_2/Main.java b/src/main/java/Immutable/A6_2/Main.java similarity index 100% rename from concurrency/src/main/java/Immutable/A6_2/Main.java rename to src/main/java/Immutable/A6_2/Main.java diff --git a/concurrency/src/main/java/Immutable/Q2/Main.java b/src/main/java/Immutable/Q2/Main.java similarity index 81% rename from concurrency/src/main/java/Immutable/Q2/Main.java rename to src/main/java/Immutable/Q2/Main.java index 2709ba1..8216518 100644 --- a/concurrency/src/main/java/Immutable/Q2/Main.java +++ b/src/main/java/Immutable/Q2/Main.java @@ -1,4 +1,4 @@ -package Immutable.Q2; +package main.java.Immutable.Q2; public class Main { public static void main(String[] args) { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java b/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java rename to src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java index edd52be..aec342b 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java +++ b/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency; +package main.java.com.javaedge.concurrency; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java b/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java rename to src/main/java/com/javaedge/concurrency/ConcurrencyTest.java index 2967863..12867a7 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java +++ b/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency; +package main.java.com.javaedge.concurrency; import com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/HttpFilter.java b/src/main/java/com/javaedge/concurrency/HttpFilter.java similarity index 90% rename from concurrency/src/main/java/com/javaedge/concurrency/HttpFilter.java rename to src/main/java/com/javaedge/concurrency/HttpFilter.java index aec3df4..87dcb65 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/HttpFilter.java +++ b/src/main/java/com/javaedge/concurrency/HttpFilter.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency; +package main.java.com.javaedge.concurrency; -import com.javaedge.concurrency.example.threadLocal.RequestHolder; +import com.javaedge.concurrency.threadLocal.RequestHolder; import lombok.extern.slf4j.Slf4j; import javax.servlet.Filter; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/HttpInterceptor.java b/src/main/java/com/javaedge/concurrency/HttpInterceptor.java similarity index 87% rename from concurrency/src/main/java/com/javaedge/concurrency/HttpInterceptor.java rename to src/main/java/com/javaedge/concurrency/HttpInterceptor.java index 4ed6d77..5172654 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/HttpInterceptor.java +++ b/src/main/java/com/javaedge/concurrency/HttpInterceptor.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency; +package main.java.com.javaedge.concurrency; -import com.javaedge.concurrency.example.threadLocal.RequestHolder; +import com.javaedge.concurrency.threadLocal.RequestHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/LockSupportBlockerTest.java b/src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/LockSupportBlockerTest.java rename to src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java index ed5b786..7b9ae45 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/LockSupportBlockerTest.java +++ b/src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example; +package main.java.com.javaedge.concurrency; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.LockSupport; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/LockSupportTest.java b/src/main/java/com/javaedge/concurrency/LockSupportTest.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/LockSupportTest.java rename to src/main/java/com/javaedge/concurrency/LockSupportTest.java index 624b1cb..6b3f543 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/LockSupportTest.java +++ b/src/main/java/com/javaedge/concurrency/LockSupportTest.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example; +package main.java.com.javaedge.concurrency; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.LockSupport; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/TestController.java b/src/main/java/com/javaedge/concurrency/TestController.java similarity index 89% rename from concurrency/src/main/java/com/javaedge/concurrency/TestController.java rename to src/main/java/com/javaedge/concurrency/TestController.java index bc49c01..1429afc 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/TestController.java +++ b/src/main/java/com/javaedge/concurrency/TestController.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency; +package main.java.com.javaedge.concurrency; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/UnsafeTest.java b/src/main/java/com/javaedge/concurrency/UnsafeTest.java similarity index 75% rename from concurrency/src/main/java/com/javaedge/concurrency/example/UnsafeTest.java rename to src/main/java/com/javaedge/concurrency/UnsafeTest.java index e24004c..6459a0a 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/UnsafeTest.java +++ b/src/main/java/com/javaedge/concurrency/UnsafeTest.java @@ -1,26 +1,26 @@ -package com.javaedge.concurrency.example; +package main.java.com.javaedge.concurrency; import sun.misc.Unsafe; import java.lang.reflect.Field; import java.util.concurrent.TimeUnit; +/** + * @author JavaEdge + */ public class UnsafeTest { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { Field f = Unsafe.class.getDeclaredField("theUnsafe"); f.setAccessible(true); Unsafe unsafe = (Unsafe) f.get(null); - Thread t1 = new Thread() { - @Override - public void run() { - Thread.currentThread().setName("t1"); - System.out.println(Thread.currentThread().getName() + " before park"); - //park 100 seconds - unsafe.park(false, TimeUnit.NANOSECONDS.convert(100, TimeUnit.SECONDS)); - System.out.println(Thread.currentThread().getName() + " after park"); - } - }; + Thread t1 = new Thread(() -> { + Thread.currentThread().setName("t1"); + System.out.println(Thread.currentThread().getName() + " before park"); + //park 100 seconds + unsafe.park(false, TimeUnit.NANOSECONDS.convert(100, TimeUnit.SECONDS)); + System.out.println(Thread.currentThread().getName() + " after park"); + }); Thread t2 = new Thread() { @Override public void run() { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java b/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java similarity index 86% rename from concurrency/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java rename to src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java index b1f1268..51563d1 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java +++ b/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.annoations; +package main.java.com.javaedge.concurrency.annoations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java b/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java similarity index 86% rename from concurrency/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java rename to src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java index 3413bd8..479d656 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java +++ b/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.annoations; +package main.java.com.javaedge.concurrency.annoations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/annoations/Recommend.java b/src/main/java/com/javaedge/concurrency/annoations/Recommend.java similarity index 86% rename from concurrency/src/main/java/com/javaedge/concurrency/annoations/Recommend.java rename to src/main/java/com/javaedge/concurrency/annoations/Recommend.java index 6e8c350..ca616cc 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/annoations/Recommend.java +++ b/src/main/java/com/javaedge/concurrency/annoations/Recommend.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.annoations; +package main.java.com.javaedge.concurrency.annoations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java b/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java similarity index 86% rename from concurrency/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java rename to src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java index c38ef6f..e248e53 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java +++ b/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.annoations; +package main.java.com.javaedge.concurrency.annoations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CountDownLatchExample1.java b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CountDownLatchExample1.java rename to src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java index ce28dda..7cbc186 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CountDownLatchExample1.java +++ b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CountDownLatchExample2.java b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CountDownLatchExample2.java rename to src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java index 65dacf0..2ae325e 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CountDownLatchExample2.java +++ b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample1.java b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample1.java rename to src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java index f117926..694afd5 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample1.java +++ b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample2.java b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample2.java rename to src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java index 19024d8..3894267 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample2.java +++ b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample3.java b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample3.java rename to src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java index 90663bc..18f0926 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/CyclicBarrierExample3.java +++ b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/SampleLock.java b/src/main/java/com/javaedge/concurrency/aqs/SampleLock.java similarity index 85% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/SampleLock.java rename to src/main/java/com/javaedge/concurrency/aqs/SampleLock.java index 4ebff9e..b2334f1 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/SampleLock.java +++ b/src/main/java/com/javaedge/concurrency/aqs/SampleLock.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/SimpleLock.java b/src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/SimpleLock.java rename to src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java index 780332b..86d9fdd 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/SimpleLock.java +++ b/src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs; +package main.java.com.javaedge.concurrency.aqs; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.AbstractQueuedSynchronizer; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/MicrowaveOvenPool.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/MicrowaveOvenPool.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java index 10c7c4a..50ccf81 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/MicrowaveOvenPool.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import javax.validation.constraints.NotNull; import java.util.List; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/ObjPool.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/ObjPool.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java index 4940086..d1397cb 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/ObjPool.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample1.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample1.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java index 9dc977c..bcf563b 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample1.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample2.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample2.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java index e6a99fe..b3c55b3 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample2.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample3.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample3.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java index 764d0c6..f9fe06d 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample3.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java @@ -1,11 +1,10 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore; -import java.util.concurrent.TimeUnit; @Slf4j public class SemaphoreExample3 { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample4.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample4.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java index d82bdba..29a3658 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample4.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample5.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java similarity index 76% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample5.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java index f765064..b462d07 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample5.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java @@ -1,12 +1,8 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import lombok.extern.slf4j.Slf4j; import java.util.Queue; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Semaphore; -import java.util.concurrent.TimeUnit; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample6.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample6.java rename to src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java index a6f9587..ecdd6ba 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/aqs/semaphore/SemaphoreExample6.java +++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.aqs.semaphore; +package main.java.com.javaedge.concurrency.aqs.semaphore; import java.util.concurrent.Semaphore; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample1.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample1.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java index eaba128..f309866 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample1.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample2.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample2.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java index 452bfb4..42aed35 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample2.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample3.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample3.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java index c6e20d3..ece69ca 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample3.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample4.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java similarity index 81% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample4.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java index d2b3c25..1238f30 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample4.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.atomic.AtomicReference; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample5.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java similarity index 87% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample5.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java index f4cc64c..0c37a22 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample5.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.Getter; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample6.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample6.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java index 7d37d40..b5a4f7b 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicExample6.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicTest.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicTest.java rename to src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java index 5293174..8cbc04a 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/AtomicTest.java +++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; import java.util.concurrent.atomic.AtomicInteger; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LockCASDemo.java b/src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LockCASDemo.java rename to src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java index 9c0e3d8..e7c03d9 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LockCASDemo.java +++ b/src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; import sun.misc.Unsafe; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LongAccumulatorDemo.java b/src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LongAccumulatorDemo.java rename to src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java index dcdf135..d78dc47 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LongAccumulatorDemo.java +++ b/src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; import java.util.concurrent.atomic.LongAccumulator; import java.util.function.LongBinaryOperator; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LongAdderDemo.java b/src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LongAdderDemo.java rename to src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java index 16927b1..b415904 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/atomic/LongAdderDemo.java +++ b/src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.atomic; +package main.java.com.javaedge.concurrency.atomic; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.LongAdder; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/CacheController.java b/src/main/java/com/javaedge/concurrency/cache/CacheController.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/cache/CacheController.java rename to src/main/java/com/javaedge/concurrency/cache/CacheController.java index 1eb5898..321d024 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/CacheController.java +++ b/src/main/java/com/javaedge/concurrency/cache/CacheController.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.cache; +package main.java.com.javaedge.concurrency.cache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/GuavaCacheExample1.java b/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample1.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/cache/GuavaCacheExample1.java rename to src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample1.java index e66ca99..09d2bad 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/GuavaCacheExample1.java +++ b/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.cache; +package com.javaedge.concurrency.cache; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/GuavaCacheExample2.java b/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/cache/GuavaCacheExample2.java rename to src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java index 9c192ab..5548124 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/GuavaCacheExample2.java +++ b/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.cache; +package main.java.com.javaedge.concurrency.cache; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/RedisClient.java b/src/main/java/com/javaedge/concurrency/cache/RedisClient.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/cache/RedisClient.java rename to src/main/java/com/javaedge/concurrency/cache/RedisClient.java index cf12169..d985089 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/RedisClient.java +++ b/src/main/java/com/javaedge/concurrency/cache/RedisClient.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.cache; +package main.java.com.javaedge.concurrency.cache; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/RedisConfig.java b/src/main/java/com/javaedge/concurrency/cache/RedisConfig.java similarity index 90% rename from concurrency/src/main/java/com/javaedge/concurrency/example/cache/RedisConfig.java rename to src/main/java/com/javaedge/concurrency/cache/RedisConfig.java index 1100ff7..7b7aaed 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/cache/RedisConfig.java +++ b/src/main/java/com/javaedge/concurrency/cache/RedisConfig.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.cache; +package main.java.com.javaedge.concurrency.cache; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java b/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java rename to src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java index 49129e3..97e53e9 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java +++ b/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.cas.demo; +package main.java.com.javaedge.concurrency.cas.demo; import com.javaedge.concurrency.cas.demo.Node; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Node.java b/src/main/java/com/javaedge/concurrency/cas/demo/Node.java similarity index 85% rename from concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Node.java rename to src/main/java/com/javaedge/concurrency/cas/demo/Node.java index 8efedc0..14a1fa4 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Node.java +++ b/src/main/java/com/javaedge/concurrency/cas/demo/Node.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.cas.demo; +package main.java.com.javaedge.concurrency.cas.demo; /** * 存储在栈里面元素 -- 对象 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java b/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java rename to src/main/java/com/javaedge/concurrency/cas/demo/Stack.java index f118e6c..36b908e 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java +++ b/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.cas.demo; +package main.java.com.javaedge.concurrency.cas.demo; import java.util.concurrent.TimeUnit; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Test.java b/src/main/java/com/javaedge/concurrency/cas/demo/Test.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Test.java rename to src/main/java/com/javaedge/concurrency/cas/demo/Test.java index fc6a42d..b90d2ac 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/cas/demo/Test.java +++ b/src/main/java/com/javaedge/concurrency/cas/demo/Test.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.cas.demo; +package main.java.com.javaedge.concurrency.cas.demo; import com.javaedge.concurrency.cas.demo.Node; -import com.javaedge.concurrency.cas.demo.Stack; +import main.java.com.javaedge.concurrency.cas.demo.Stack; public class Test { public static void main(String[] args) throws InterruptedException { diff --git a/src/main/java/com/javaedge/concurrency/common/Nap.java b/src/main/java/com/javaedge/concurrency/common/Nap.java new file mode 100644 index 0000000..adb7c4c --- /dev/null +++ b/src/main/java/com/javaedge/concurrency/common/Nap.java @@ -0,0 +1,23 @@ +package main.java.com.javaedge.concurrency.common; + +import java.util.concurrent.TimeUnit; + +/** + * @author JavaEdge + */ +public class Nap { + + // Seconds + public Nap(double t) { + try { + TimeUnit.MILLISECONDS.sleep((int) (1000 * t)); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + public Nap(double t, String msg) { + this(t); + System.out.println(msg); + } +} diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/Timer.java b/src/main/java/com/javaedge/concurrency/common/Timer.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/common/Timer.java rename to src/main/java/com/javaedge/concurrency/common/Timer.java index caadf6d..77a3da4 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/Timer.java +++ b/src/main/java/com/javaedge/concurrency/common/Timer.java @@ -2,7 +2,7 @@ // (c)2017 MindView LLC: see Copyright.txt // We make no guarantees that this code is fit for any purpose. // Visit http://OnJava8.com for more book information. -package com.javaedge.concurrency.common; +package main.java.com.javaedge.concurrency.common; import static java.util.concurrent.TimeUnit.NANOSECONDS; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java b/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java rename to src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java index d803764..eecd77a 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java +++ b/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.closure; +package main.java.com.javaedge.concurrency.common.closure; import org.testng.annotations.Test; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java b/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java similarity index 99% rename from concurrency/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java rename to src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java index b21f240..ba94398 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java +++ b/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.communication; +package main.java.com.javaedge.concurrency.common.communication; import java.util.concurrent.locks.LockSupport; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java b/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java similarity index 98% rename from concurrency/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java rename to src/main/java/com/javaedge/concurrency/common/state/ThreadState.java index 21ee75a..f123ad2 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java +++ b/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.state; +package main.java.com.javaedge.concurrency.common.state; /** * 多线程运行状态切换 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java b/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java similarity index 93% rename from concurrency/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java rename to src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java index 65dd10d..7201e65 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java +++ b/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.stop; +package main.java.com.javaedge.concurrency.common.stop; /** * 通过状态位来判断 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java b/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java rename to src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java index 627bb83..9ac8877 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java +++ b/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.common.stop; +package main.java.com.javaedge.concurrency.common.stop; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import javax.annotation.concurrent.GuardedBy; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java b/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java rename to src/main/java/com/javaedge/concurrency/common/stop/StopThread.java index 06e76d9..501b5b0 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java +++ b/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.stop; +package main.java.com.javaedge.concurrency.common.stop; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java b/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java rename to src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java index d4fb9a9..6fe9aca 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java +++ b/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.stop; +package main.java.com.javaedge.concurrency.common.stop; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java rename to src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java index 085d1d8..5247ab5 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java +++ b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.volatiletest; +package main.java.com.javaedge.concurrency.common.volatiletest; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java similarity index 93% rename from concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java rename to src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java index 19169ba..8956eb2 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java +++ b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.volatiletest; +package main.java.com.javaedge.concurrency.common.volatiletest; import java.util.concurrent.TimeUnit; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java rename to src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java index edf43d4..04bb23a 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java +++ b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.common.volatiletest; +package main.java.com.javaedge.concurrency.common.volatiletest; import java.util.concurrent.TimeUnit; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/ArrayListExample.java b/src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/ArrayListExample.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java index e380611..29541aa 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/ArrayListExample.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample1.java b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample1.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java index abead7a..bceba91 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample1.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample2.java b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample2.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java index 9be2cf6..809e505 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample2.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample3.java b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample3.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java index 133a7ca..8057e44 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/DateFormatExample3.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/HashMapExample.java b/src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/HashMapExample.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java index 769a7b6..b6eb68b 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/HashMapExample.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/HashSetExample.java b/src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/HashSetExample.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java index d7f01e8..69b9a57 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/HashSetExample.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/StringExample1.java b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/StringExample1.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java index 8faeeb8..e445ff8 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/StringExample1.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/StringExample2.java b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/StringExample2.java rename to src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java index a776282..00594c1 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/commonunsafe/StringExample2.java +++ b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.commonunsafe; +package main.java.com.javaedge.concurrency.commonunsafe; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentHashMapExample.java b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentHashMapExample.java rename to src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java index b8c30c8..4a7d217 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentHashMapExample.java +++ b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.concurrent; +package main.java.com.javaedge.concurrency.concurrent; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentSkipListMapExample.java b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentSkipListMapExample.java rename to src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java index b81407e..1d39bd0 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentSkipListMapExample.java +++ b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.concurrent; +package main.java.com.javaedge.concurrency.concurrent; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentSkipListSetExample.java b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentSkipListSetExample.java rename to src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java index 1a1833c..b197d1b 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/ConcurrentSkipListSetExample.java +++ b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.concurrent; +package main.java.com.javaedge.concurrency.concurrent; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/CopyOnWriteArrayListExample.java b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/CopyOnWriteArrayListExample.java rename to src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java index a47d3d6..de26588 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/CopyOnWriteArrayListExample.java +++ b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.concurrent; +package main.java.com.javaedge.concurrency.concurrent; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/CopyOnWriteArraySetExample.java b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/CopyOnWriteArraySetExample.java rename to src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java index 29d6aad..7d9c882 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/concurrent/CopyOnWriteArraySetExample.java +++ b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.concurrent; +package main.java.com.javaedge.concurrency.concurrent; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/condition/BlockedQueue.java b/src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/condition/BlockedQueue.java rename to src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java index 5ce298a..75936aa 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/condition/BlockedQueue.java +++ b/src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.condition; +package main.java.com.javaedge.concurrency.condition; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/condition/DubboCondition.java b/src/main/java/com/javaedge/concurrency/condition/DubboCondition.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/condition/DubboCondition.java rename to src/main/java/com/javaedge/concurrency/condition/DubboCondition.java index 38b4e04..17f492c 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/condition/DubboCondition.java +++ b/src/main/java/com/javaedge/concurrency/condition/DubboCondition.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.condition; +package main.java.com.javaedge.concurrency.condition; import redis.clients.jedis.Response; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample1.java b/src/main/java/com/javaedge/concurrency/count/CountExample1.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample1.java rename to src/main/java/com/javaedge/concurrency/count/CountExample1.java index 7cfc0c1..d3f4817 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample1.java +++ b/src/main/java/com/javaedge/concurrency/count/CountExample1.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.count; +package main.java.com.javaedge.concurrency.count; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample2.java b/src/main/java/com/javaedge/concurrency/count/CountExample2.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample2.java rename to src/main/java/com/javaedge/concurrency/count/CountExample2.java index a386b11..5499fa8 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample2.java +++ b/src/main/java/com/javaedge/concurrency/count/CountExample2.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.count; +package main.java.com.javaedge.concurrency.count; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample3.java b/src/main/java/com/javaedge/concurrency/count/CountExample3.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample3.java rename to src/main/java/com/javaedge/concurrency/count/CountExample3.java index 5a63a03..402cbdb 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample3.java +++ b/src/main/java/com/javaedge/concurrency/count/CountExample3.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.count; +package main.java.com.javaedge.concurrency.count; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample4.java b/src/main/java/com/javaedge/concurrency/count/CountExample4.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample4.java rename to src/main/java/com/javaedge/concurrency/count/CountExample4.java index 0d961f0..a3b87ae 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/count/CountExample4.java +++ b/src/main/java/com/javaedge/concurrency/count/CountExample4.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.count; +package main.java.com.javaedge.concurrency.count; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/deadLock/DeadLock.java b/src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/deadLock/DeadLock.java rename to src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java index cf9cfad..0719f17 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/deadLock/DeadLock.java +++ b/src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.deadLock; +package main.java.com.javaedge.concurrency.deadLock; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample.java b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample.java rename to src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java index 3e7eb41..58b2c59 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample.java +++ b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.forkjoin; +package main.java.com.javaedge.concurrency.forkjoin; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample2.java b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample2.java rename to src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java index 0047688..4621040 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample2.java +++ b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java @@ -1,9 +1,8 @@ -package com.javaedge.concurrency.example.forkjoin; +package main.java.com.javaedge.concurrency.forkjoin; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ForkJoinPool; -import java.util.concurrent.Future; import java.util.concurrent.RecursiveTask; /** diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample3.java b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java similarity index 99% rename from concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample3.java rename to src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java index 1aec08d..a33e195 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/forkjoin/ForkJoinTaskExample3.java +++ b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.forkjoin; +package main.java.com.javaedge.concurrency.forkjoin; import lombok.extern.slf4j.Slf4j; import org.junit.Test; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/guava/FutureExample.java b/src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/furure/guava/FutureExample.java rename to src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java index 9d33971..8af249d 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/guava/FutureExample.java +++ b/src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java @@ -1,13 +1,11 @@ -package com.javaedge.concurrency.example.furure.guava; +package main.java.com.javaedge.concurrency.furure.guava; import com.google.common.util.concurrent.*; import lombok.extern.slf4j.Slf4j; import javax.annotation.Nullable; import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.Future; /** * @author JavaEdge diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java new file mode 100644 index 0000000..d913677 --- /dev/null +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java @@ -0,0 +1,65 @@ +package main.java.com.javaedge.concurrency.furure.jdk; + +import org.junit.Test; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.concurrent.*; +import java.util.concurrent.locks.LockSupport; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @author JavaEdge + * @date 2022/5/28 + */ +public class CompletableFurureDemo3 { + + @Test + public void CompletableFutureAndExecutor() { + Stream integerStream = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + ExecutorService executor = Executors.newFixedThreadPool((int) integerStream.count()); + List> futureList = integerStream + .map(operand -> + CompletableFuture.supplyAsync(() -> { + getThreadName(); + return 1; + }, executor + ) + ).collect(Collectors.toList()); + long count = futureList.stream().map(CompletableFuture::join).count(); + System.out.println(count); + } + + /** + * 使用CountDownLatch改造主线程阻塞直到任务都完成 + * @throws InterruptedException + */ + @Test + public void CompletableFutureAndExecutor2() throws InterruptedException { + Stream integerStream = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + CountDownLatch countDownLatch = new CountDownLatch(10); + ExecutorService executor = Executors.newFixedThreadPool(10); +// ExecutorService executor = Executors.newFixedThreadPool((int) integerStream.count()); FIXME bug写法 + List> futureList = integerStream + .map(operand -> + CompletableFuture.supplyAsync(() -> { + getThreadName(); + countDownLatch.countDown(); + return 1; + }, executor + ) + ).collect(Collectors.toList()); + countDownLatch.await(10, TimeUnit.MINUTES); + long count = futureList.stream().map(CompletableFuture::join).count(); + System.out.println(count); + } + + private void getThreadName() { + // sleep 1秒 + LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(1)); + String time = LocalDateTime.now().toLocalTime().toString(); + String name = Thread.currentThread().getName(); + System.out.println(time + " " + name); + } +} diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletableFutureDemo.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletableFutureDemo.java rename to src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java index 84a3d79..47e25f1 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletableFutureDemo.java +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.furure.jdk; +package main.java.com.javaedge.concurrency.furure.jdk; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletableFutureDemo2.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletableFutureDemo2.java rename to src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java index e8b6049..b8714e7 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletableFutureDemo2.java +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java @@ -1,10 +1,9 @@ -package com.javaedge.concurrency.example.furure.jdk; +package main.java.com.javaedge.concurrency.furure.jdk; import lombok.extern.slf4j.Slf4j; import java.util.Random; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletionServiceDemo.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java similarity index 98% rename from concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletionServiceDemo.java rename to src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java index 1c4935d..76cb04b 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/CompletionServiceDemo.java +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.furure.jdk; +package main.java.com.javaedge.concurrency.furure.jdk; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/FutureExample.java b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/FutureExample.java rename to src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java index a4ede87..68623dc 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/FutureExample.java +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.furure.jdk; +package main.java.com.javaedge.concurrency.furure.jdk; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/FutureTaskExample.java b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/FutureTaskExample.java rename to src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java index 1baac34..9f7f70e 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/furure/jdk/FutureTaskExample.java +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.furure.jdk; +package main.java.com.javaedge.concurrency.furure.jdk; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java b/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java new file mode 100644 index 0000000..3ddb7e1 --- /dev/null +++ b/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java @@ -0,0 +1,43 @@ +package main.java.com.javaedge.concurrency.furure.jdk; + + +import com.javaedge.concurrency.common.Nap; + +/** + * @author JavaEdge + */ +public class Machina { + + public enum State { + START, ONE, TWO, THREE, END; + + State step() { + if (equals(END)) { + return END; + } + return values()[ordinal() + 1]; + } + } + + private State state = State.START; + private final int id; + + public Machina(int id) { + this.id = id; + } + + public static Machina work(Machina m) { + if (!m.state.equals(State.END)) { + new Nap(0.1); + m.state = m.state.step(); + } + System.out.println(m); + return m; + } + + @Override + public String toString() { + return "Machina" + id + ": " + + (state.equals(State.END) ? "complete" : state); + } +} diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample1.java b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java similarity index 84% rename from concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample1.java rename to src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java index 5797992..8d83363 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample1.java +++ b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.example.immutable; +package main.java.com.javaedge.concurrency.immutable; import com.google.common.collect.Maps; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.Map; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample2.java b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java similarity index 80% rename from concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample2.java rename to src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java index 126cbf5..5ac8089 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample2.java +++ b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.example.immutable; +package main.java.com.javaedge.concurrency.immutable; import com.google.common.collect.Maps; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample3.java b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java similarity index 85% rename from concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample3.java rename to src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java index 587cd2d..9c88b70 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/immutable/ImmutableExample3.java +++ b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java @@ -1,9 +1,9 @@ -package com.javaedge.concurrency.example.immutable; +package main.java.com.javaedge.concurrency.immutable; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; @ThreadSafe public class ImmutableExample3 { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/Account.java b/src/main/java/com/javaedge/concurrency/lock/Account.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/Account.java rename to src/main/java/com/javaedge/concurrency/lock/Account.java index a0c9ddb..b45f34e 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/Account.java +++ b/src/main/java/com/javaedge/concurrency/lock/Account.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.Random; import java.util.concurrent.TimeUnit; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo1.java b/src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo1.java rename to src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java index ba872c4..aa7cea3 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo1.java +++ b/src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.HashMap; import java.util.Map; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo2.java b/src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo2.java rename to src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java index 5f0f9be..5685fb2 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo2.java +++ b/src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.HashMap; import java.util.Map; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo3.java b/src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo3.java rename to src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java index 213fec9..fb3be1e 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/CacheDemo3.java +++ b/src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockDemo.java b/src/main/java/com/javaedge/concurrency/lock/LockDemo.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockDemo.java rename to src/main/java/com/javaedge/concurrency/lock/LockDemo.java index eb9f657..c7ae504 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockDemo.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockDemo.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; /** * 多线程 原子性 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample1.java b/src/main/java/com/javaedge/concurrency/lock/LockExample1.java similarity index 92% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample1.java rename to src/main/java/com/javaedge/concurrency/lock/LockExample1.java index 8cd84b0..04994ee 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample1.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockExample1.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample2.java b/src/main/java/com/javaedge/concurrency/lock/LockExample2.java similarity index 93% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample2.java rename to src/main/java/com/javaedge/concurrency/lock/LockExample2.java index ae631bb..af76c79 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample2.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockExample2.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample3.java b/src/main/java/com/javaedge/concurrency/lock/LockExample3.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample3.java rename to src/main/java/com/javaedge/concurrency/lock/LockExample3.java index d6c0be0..6afe438 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample3.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample4.java b/src/main/java/com/javaedge/concurrency/lock/LockExample4.java similarity index 97% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample4.java rename to src/main/java/com/javaedge/concurrency/lock/LockExample4.java index b775e55..b43892f 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample4.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockExample4.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.concurrent.locks.StampedLock; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample5.java b/src/main/java/com/javaedge/concurrency/lock/LockExample5.java similarity index 93% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample5.java rename to src/main/java/com/javaedge/concurrency/lock/LockExample5.java index b7412e7..201bc89 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample5.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockExample5.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample6.java b/src/main/java/com/javaedge/concurrency/lock/LockExample6.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample6.java rename to src/main/java/com/javaedge/concurrency/lock/LockExample6.java index f8edb00..7afb645 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockExample6.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockExample6.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockTest.java b/src/main/java/com/javaedge/concurrency/lock/LockTest.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockTest.java rename to src/main/java/com/javaedge/concurrency/lock/LockTest.java index 45d76f9..86021b5 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockTest.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockTest.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockTest2.java b/src/main/java/com/javaedge/concurrency/lock/LockTest2.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockTest2.java rename to src/main/java/com/javaedge/concurrency/lock/LockTest2.java index 59f97a6..ea86ce5 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/LockTest2.java +++ b/src/main/java/com/javaedge/concurrency/lock/LockTest2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/Point.java b/src/main/java/com/javaedge/concurrency/lock/Point.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/Point.java rename to src/main/java/com/javaedge/concurrency/lock/Point.java index 648d0e2..6b84f32 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/Point.java +++ b/src/main/java/com/javaedge/concurrency/lock/Point.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.lock; +package main.java.com.javaedge.concurrency.lock; import java.util.concurrent.locks.StampedLock; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/TicketLock.java b/src/main/java/com/javaedge/concurrency/lock/TicketLock.java similarity index 93% rename from concurrency/src/main/java/com/javaedge/concurrency/example/lock/TicketLock.java rename to src/main/java/com/javaedge/concurrency/lock/TicketLock.java index 63de487..5d12bb5 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/lock/TicketLock.java +++ b/src/main/java/com/javaedge/concurrency/lock/TicketLock.java @@ -1,3 +1,5 @@ +package main.java.com.javaedge.concurrency.lock; + import java.util.concurrent.atomic.AtomicInteger; public class TicketLock { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/Message.java b/src/main/java/com/javaedge/concurrency/mq/Message.java similarity index 57% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/Message.java rename to src/main/java/com/javaedge/concurrency/mq/Message.java index 9e008a6..f38d170 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/Message.java +++ b/src/main/java/com/javaedge/concurrency/mq/Message.java @@ -1,9 +1,6 @@ -package com.javaedge.concurrency.example.mq; +package main.java.com.javaedge.concurrency.mq; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; import java.util.Date; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/MqController.java b/src/main/java/com/javaedge/concurrency/mq/MqController.java similarity index 80% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/MqController.java rename to src/main/java/com/javaedge/concurrency/mq/MqController.java index 46d8abe..0d53cf4 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/MqController.java +++ b/src/main/java/com/javaedge/concurrency/mq/MqController.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.example.mq; +package main.java.com.javaedge.concurrency.mq; -import com.javaedge.concurrency.example.mq.kafka.KafkaSender; -import com.javaedge.concurrency.example.mq.rabbitmq.RabbitMqClient; +import com.javaedge.concurrency.mq.kafka.KafkaSender; +import com.javaedge.concurrency.mq.rabbitmq.RabbitMqClient; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/KafkaReceiver.java b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java similarity index 89% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/KafkaReceiver.java rename to src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java index 14544cd..bf384b7 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/KafkaReceiver.java +++ b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.mq.kafka; +package main.java.com.javaedge.concurrency.mq.kafka; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.consumer.ConsumerRecord; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/KafkaSender.java b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java similarity index 87% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/KafkaSender.java rename to src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java index 927a7f1..ea6c3c8 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/KafkaSender.java +++ b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java @@ -1,8 +1,8 @@ -package com.javaedge.concurrency.example.mq.kafka; +package main.java.com.javaedge.concurrency.mq.kafka; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.javaedge.concurrency.example.mq.Message; +import main.java.com.javaedge.concurrency.mq.Message; import lombok.extern.slf4j.Slf4j; import org.springframework.kafka.core.KafkaTemplate; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/TopicConstants.java b/src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java similarity index 73% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/TopicConstants.java rename to src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java index 137fe91..07255d6 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/kafka/TopicConstants.java +++ b/src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.mq.kafka; +package main.java.com.javaedge.concurrency.mq.kafka; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/QueueConstants.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java similarity index 72% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/QueueConstants.java rename to src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java index 4bc59cf..9c43a3a 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/QueueConstants.java +++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.mq.rabbitmq; +package main.java.com.javaedge.concurrency.mq.rabbitmq; /** * @author JavaEdge diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqClient.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java similarity index 89% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqClient.java rename to src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java index b14c6bc..daef199 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqClient.java +++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.mq.rabbitmq; +package main.java.com.javaedge.concurrency.mq.rabbitmq; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqConfig.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java similarity index 86% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqConfig.java rename to src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java index e983afc..b239e62 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqConfig.java +++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.mq.rabbitmq; +package main.java.com.javaedge.concurrency.mq.rabbitmq; import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqServer.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java similarity index 87% rename from concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqServer.java rename to src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java index 2e90678..aaba62f 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/mq/rabbitmq/RabbitMqServer.java +++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.mq.rabbitmq; +package main.java.com.javaedge.concurrency.mq.rabbitmq; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitListener; diff --git a/src/main/java/com/javaedge/concurrency/order/OrderSpec.java b/src/main/java/com/javaedge/concurrency/order/OrderSpec.java new file mode 100644 index 0000000..e69de29 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/publish/Escape.java b/src/main/java/com/javaedge/concurrency/publish/Escape.java similarity index 68% rename from concurrency/src/main/java/com/javaedge/concurrency/example/publish/Escape.java rename to src/main/java/com/javaedge/concurrency/publish/Escape.java index 7dec55b..27958cc 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/publish/Escape.java +++ b/src/main/java/com/javaedge/concurrency/publish/Escape.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.example.publish; +package main.java.com.javaedge.concurrency.publish; -import com.javaedge.concurrency.annoations.NotRecommend; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotRecommend; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; @Slf4j diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/publish/UnsafePublish.java b/src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java similarity index 81% rename from concurrency/src/main/java/com/javaedge/concurrency/example/publish/UnsafePublish.java rename to src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java index 6c9522d..25cc4fe 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/publish/UnsafePublish.java +++ b/src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.publish; +package main.java.com.javaedge.concurrency.publish; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; import lombok.extern.slf4j.Slf4j; import java.util.Arrays; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample1.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java similarity index 79% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample1.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java index c4c3954..0a3de11 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample1.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; /** * 懒汉模式 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample2.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java similarity index 76% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample2.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java index e19499c..79ac587 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample2.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; /** * 饿汉模式 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample3.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java similarity index 72% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample3.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java index e0ca068..0290a10 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample3.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.NotRecommend; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotRecommend; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; /** * 懒汉模式 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample4.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java similarity index 89% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample4.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java index 611278d..08414f6 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample4.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.NotThreadSafe; +import main.java.com.javaedge.concurrency.annoations.NotThreadSafe; /** * 懒汉模式 -》 双重同步锁单例模式 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample5.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java similarity index 88% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample5.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java index f4c6dfd..ac34369 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample5.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; /** * 懒汉模式 -》 双重同步锁单例模式 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample6.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java similarity index 83% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample6.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java index 8d02e5e..8313698 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample6.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java @@ -1,6 +1,6 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; /** * 饿汉模式 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample7.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java similarity index 76% rename from concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample7.java rename to src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java index 4475432..ffb6edb 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/singleton/SingletonExample7.java +++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java @@ -1,7 +1,7 @@ -package com.javaedge.concurrency.example.singleton; +package main.java.com.javaedge.concurrency.singleton; -import com.javaedge.concurrency.annoations.Recommend; -import com.javaedge.concurrency.annoations.ThreadSafe; +import main.java.com.javaedge.concurrency.annoations.Recommend; +import main.java.com.javaedge.concurrency.annoations.ThreadSafe; /** * 枚举模式:最安全 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/streams/ParallelPrime.java b/src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/streams/ParallelPrime.java rename to src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java index 53d05ab..0b12d29 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/streams/ParallelPrime.java +++ b/src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.streams; +package main.java.com.javaedge.concurrency.streams; import com.javaedge.concurrency.common.Timer; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/streams/Summing.java b/src/main/java/com/javaedge/concurrency/streams/Summing.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/streams/Summing.java rename to src/main/java/com/javaedge/concurrency/streams/Summing.java index f0f73ae..dd4b203 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/streams/Summing.java +++ b/src/main/java/com/javaedge/concurrency/streams/Summing.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.streams; +package main.java.com.javaedge.concurrency.streams; import com.javaedge.concurrency.common.Timer; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo1.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo1.java rename to src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java index 7fea598..ad2aa6d 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo1.java +++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.sync; +package main.java.com.javaedge.concurrency.sync; /** * 锁 方法(静态/非静态),代码块(对象/类) diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo2.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo2.java rename to src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java index 4124e65..538bbd8 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo2.java +++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.sync; +package main.java.com.javaedge.concurrency.sync; // 可重入 public class ObjectSyncDemo2 { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo3.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java similarity index 91% rename from concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo3.java rename to src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java index f6a25e7..7ddcd91 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo3.java +++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.sync; +package main.java.com.javaedge.concurrency.sync; // 锁粗化(运行时 jit 编译优化) // jit 编译后的汇编内容, jitwatch可视化工具进行查看 diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo4.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo4.java rename to src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java index 8cf9d70..82eb858 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/ObjectSyncDemo4.java +++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.sync; +package main.java.com.javaedge.concurrency.sync; // 锁消除(jit) public class ObjectSyncDemo4 { diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/SynchronizedExample1.java b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/sync/SynchronizedExample1.java rename to src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java index 9ba8ced..e1fea73 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/SynchronizedExample1.java +++ b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.sync; +package main.java.com.javaedge.concurrency.sync; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/SynchronizedExample2.java b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java similarity index 95% rename from concurrency/src/main/java/com/javaedge/concurrency/example/sync/SynchronizedExample2.java rename to src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java index e43490e..936a33c 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/sync/SynchronizedExample2.java +++ b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.sync; +package main.java.com.javaedge.concurrency.sync; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample1.java b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample1.java rename to src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java index 81acbb9..c118ff9 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample1.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import com.google.common.collect.Lists; import com.javaedge.concurrency.annoations.ThreadSafe; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample2.java b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample2.java rename to src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java index 951cfbb..a60e053 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample2.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import com.google.common.collect.Sets; import com.javaedge.concurrency.annoations.ThreadSafe; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample3.java b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample3.java rename to src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java index e4a7bce..32ec833 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/CollectionsExample3.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/HashTableExample.java b/src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/HashTableExample.java rename to src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java index fa11482..9bdcba0 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/HashTableExample.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample1.java b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample1.java rename to src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java index 9a3251e..90344c9 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample1.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import com.javaedge.concurrency.annoations.ThreadSafe; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample2.java b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java similarity index 93% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample2.java rename to src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java index 80273bd..0c6742e 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample2.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import com.javaedge.concurrency.annoations.NotThreadSafe; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample3.java b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample3.java rename to src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java index 427a7ef..f3994c4 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/syncContainer/VectorExample3.java +++ b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.syncContainer; +package main.java.com.javaedge.concurrency.syncContainer; import java.util.Iterator; import java.util.Vector; diff --git a/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java b/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java new file mode 100644 index 0000000..ea21286 --- /dev/null +++ b/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java @@ -0,0 +1,35 @@ +package main.java.com.javaedge.concurrency.threadLocal; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * @author JavaEdge + * @date 2022/10/4 + */ +public class DirtyDataInThreadLocal { + + public static ThreadLocal threadLocal = new ThreadLocal<>(); + + public static void main(String[] args) { + ExecutorService threadPool = Executors.newFixedThreadPool(1); + for (int i = 0; i < 2; i++) { + MyThread myThread = new MyThread(); + threadPool.execute(myThread); + } + } + + private static class MyThread extends Thread { + + private static boolean flag = true; + + @Override + public void run() { + if (flag) { + threadLocal.set(this.getName() + ", session info."); + flag = false; + } + System.out.println(this.getName() + " 线程是 " + threadLocal.get()); + } + } +} diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadLocal/RequestHolder.java b/src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java similarity index 87% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadLocal/RequestHolder.java rename to src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java index 5847b29..7066bda 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadLocal/RequestHolder.java +++ b/src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadLocal; +package main.java.com.javaedge.concurrency.threadLocal; /** * diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadLocal/ThreadLocalController.java b/src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java similarity index 88% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadLocal/ThreadLocalController.java rename to src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java index 031e5f2..7454d3c 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadLocal/ThreadLocalController.java +++ b/src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadLocal; +package main.java.com.javaedge.concurrency.threadLocal; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpermessage/EchoServer.java b/src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpermessage/EchoServer.java rename to src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java index bb7cdac..706a074 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpermessage/EchoServer.java +++ b/src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpermessage; +package main.java.com.javaedge.concurrency.threadpermessage; import java.io.IOException; import java.io.UncheckedIOException; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/MyThreadPool.java b/src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/MyThreadPool.java rename to src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java index 0eb1cea..c691a43 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/MyThreadPool.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import com.google.common.collect.Lists; import lombok.SneakyThrows; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPool2.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java similarity index 96% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPool2.java rename to src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java index f7814b9..b11477c 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPool2.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample1.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java similarity index 90% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample1.java rename to src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java index 20b963e..1417146 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample1.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample2.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java similarity index 90% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample2.java rename to src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java index 5191771..9cd3809 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample2.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample3.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java similarity index 90% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample3.java rename to src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java index 255d290..7930097 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample3.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample4.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java similarity index 94% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample4.java rename to src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java index 869b627..d9fb5e9 100755 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample4.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import lombok.extern.slf4j.Slf4j; diff --git a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample5.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java similarity index 99% rename from concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample5.java rename to src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java index 61de37a..a02ecc4 100644 --- a/concurrency/src/main/java/com/javaedge/concurrency/example/threadpool/ThreadPoolExample5.java +++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency.example.threadpool; +package main.java.com.javaedge.concurrency.threadpool; import org.testng.annotations.Test; diff --git a/concurrency/src/main/java/workerthread/v1/Channel.java b/src/main/java/workerthread/v1/Channel.java similarity index 93% rename from concurrency/src/main/java/workerthread/v1/Channel.java rename to src/main/java/workerthread/v1/Channel.java index 74b105f..1b2a201 100644 --- a/concurrency/src/main/java/workerthread/v1/Channel.java +++ b/src/main/java/workerthread/v1/Channel.java @@ -1,4 +1,4 @@ -package workerthread.v1; +package main.java.workerthread.v1; /** * 传递工作请求及保存工作线程 diff --git a/concurrency/src/main/java/workerthread/v1/ClientThread.java b/src/main/java/workerthread/v1/ClientThread.java similarity index 91% rename from concurrency/src/main/java/workerthread/v1/ClientThread.java rename to src/main/java/workerthread/v1/ClientThread.java index 7319fda..0a777eb 100644 --- a/concurrency/src/main/java/workerthread/v1/ClientThread.java +++ b/src/main/java/workerthread/v1/ClientThread.java @@ -1,4 +1,4 @@ -package workerthread.v1; +package main.java.workerthread.v1; import java.util.Random; diff --git a/concurrency/src/main/java/workerthread/v1/Main.java b/src/main/java/workerthread/v1/Main.java similarity index 89% rename from concurrency/src/main/java/workerthread/v1/Main.java rename to src/main/java/workerthread/v1/Main.java index ee4b8ef..ddb2b83 100644 --- a/concurrency/src/main/java/workerthread/v1/Main.java +++ b/src/main/java/workerthread/v1/Main.java @@ -1,4 +1,4 @@ -package workerthread.v1; +package main.java.workerthread.v1; /** diff --git a/concurrency/src/main/java/workerthread/v1/Request.java b/src/main/java/workerthread/v1/Request.java similarity index 89% rename from concurrency/src/main/java/workerthread/v1/Request.java rename to src/main/java/workerthread/v1/Request.java index 105d4ae..fe85839 100644 --- a/concurrency/src/main/java/workerthread/v1/Request.java +++ b/src/main/java/workerthread/v1/Request.java @@ -1,4 +1,4 @@ -package workerthread.v1; +package main.java.workerthread.v1; /** * 工作请求 diff --git a/concurrency/src/main/java/workerthread/v1/WorkerThread.java b/src/main/java/workerthread/v1/WorkerThread.java similarity index 88% rename from concurrency/src/main/java/workerthread/v1/WorkerThread.java rename to src/main/java/workerthread/v1/WorkerThread.java index ca952e8..b6fd422 100644 --- a/concurrency/src/main/java/workerthread/v1/WorkerThread.java +++ b/src/main/java/workerthread/v1/WorkerThread.java @@ -1,4 +1,4 @@ -package workerthread.v1; +package main.java.workerthread.v1; /** * 工作线程 diff --git a/concurrency/src/main/java/workerthread/v2/Channel.java b/src/main/java/workerthread/v2/Channel.java similarity index 85% rename from concurrency/src/main/java/workerthread/v2/Channel.java rename to src/main/java/workerthread/v2/Channel.java index e8fe85f..e28e807 100644 --- a/concurrency/src/main/java/workerthread/v2/Channel.java +++ b/src/main/java/workerthread/v2/Channel.java @@ -1,4 +1,4 @@ -package workerthread.v2; +package main.java.workerthread.v2; import workerthread.v1.Request; diff --git a/concurrency/src/main/main.iml b/src/main/main.iml similarity index 100% rename from concurrency/src/main/main.iml rename to src/main/main.iml diff --git a/concurrency/src/main/resources/application.properties b/src/main/resources/application.properties similarity index 100% rename from concurrency/src/main/resources/application.properties rename to src/main/resources/application.properties diff --git a/concurrency/src/test/java/com/javaedge/concurrency/ConcurrencyApplicationTests.java b/src/test/com/javaedge/concurrency/ConcurrencyApplicationTests.java similarity index 68% rename from concurrency/src/test/java/com/javaedge/concurrency/ConcurrencyApplicationTests.java rename to src/test/com/javaedge/concurrency/ConcurrencyApplicationTests.java index ccd5c26..3928bea 100755 --- a/concurrency/src/test/java/com/javaedge/concurrency/ConcurrencyApplicationTests.java +++ b/src/test/com/javaedge/concurrency/ConcurrencyApplicationTests.java @@ -1,4 +1,4 @@ -package com.javaedge.concurrency; +package test.com.javaedge.concurrency; import org.junit.Test; import org.junit.runner.RunWith; @@ -10,7 +10,10 @@ public class ConcurrencyApplicationTests { @Test - public void contextLoads() { + public void test() { + Thread thread = new Thread(); + thread.start(); + thread.start(); } } diff --git a/concurrency/src/test/test.iml b/src/test/test.iml similarity index 100% rename from concurrency/src/test/test.iml rename to src/test/test.iml