From fa845b642f06310541113c84534b3f626f5081b0 Mon Sep 17 00:00:00 2001 From: liulei33 Date: Thu, 26 Mar 2020 15:33:55 +0800 Subject: [PATCH] summit --- .../thread/{ => base}/InterruptDemo.java | 2 +- .../thread/{ => base}/InterruptResetDemo.java | 2 +- .../thread/{ => base}/ThreadJoinDemo.java | 2 +- .../thread/{ => base}/ThreadStatusDemo.java | 3 +- .../Mrliu/thread/concurrent/syn/AQSTest.java | 16 ++++++++ .../thread/concurrent/syn/ConditionTest.java | 10 +++++ .../concurrent/syn/LockSupportTest.java | 10 +++++ .../thread/concurrent/syn/LocksTest.java | 10 +++++ .../syn/ReentrantRadeWaitLockTest.java | 10 +++++ .../concurrent/syn/ReenttrantLockTest.java | 10 +++++ .../concurrent/syn/SynchronizedTest.java | 40 +++++++++++++++++++ 11 files changed, 111 insertions(+), 4 deletions(-) rename src/main/java/com/Mrliu/thread/{ => base}/InterruptDemo.java (94%) rename src/main/java/com/Mrliu/thread/{ => base}/InterruptResetDemo.java (97%) rename src/main/java/com/Mrliu/thread/{ => base}/ThreadJoinDemo.java (95%) rename src/main/java/com/Mrliu/thread/{ => base}/ThreadStatusDemo.java (95%) create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/AQSTest.java create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/ConditionTest.java create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/LockSupportTest.java create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/LocksTest.java create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/ReentrantRadeWaitLockTest.java create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/ReenttrantLockTest.java create mode 100644 src/main/java/com/Mrliu/thread/concurrent/syn/SynchronizedTest.java diff --git a/src/main/java/com/Mrliu/thread/InterruptDemo.java b/src/main/java/com/Mrliu/thread/base/InterruptDemo.java similarity index 94% rename from src/main/java/com/Mrliu/thread/InterruptDemo.java rename to src/main/java/com/Mrliu/thread/base/InterruptDemo.java index 83c522c..3cc033c 100644 --- a/src/main/java/com/Mrliu/thread/InterruptDemo.java +++ b/src/main/java/com/Mrliu/thread/base/InterruptDemo.java @@ -1,4 +1,4 @@ -package com.Mrliu.thread; +package com.Mrliu.thread.base; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/com/Mrliu/thread/InterruptResetDemo.java b/src/main/java/com/Mrliu/thread/base/InterruptResetDemo.java similarity index 97% rename from src/main/java/com/Mrliu/thread/InterruptResetDemo.java rename to src/main/java/com/Mrliu/thread/base/InterruptResetDemo.java index 9ab8fdd..48213e1 100644 --- a/src/main/java/com/Mrliu/thread/InterruptResetDemo.java +++ b/src/main/java/com/Mrliu/thread/base/InterruptResetDemo.java @@ -1,4 +1,4 @@ -package com.Mrliu.thread; +package com.Mrliu.thread.base; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/com/Mrliu/thread/ThreadJoinDemo.java b/src/main/java/com/Mrliu/thread/base/ThreadJoinDemo.java similarity index 95% rename from src/main/java/com/Mrliu/thread/ThreadJoinDemo.java rename to src/main/java/com/Mrliu/thread/base/ThreadJoinDemo.java index 7ce9188..ee0c341 100644 --- a/src/main/java/com/Mrliu/thread/ThreadJoinDemo.java +++ b/src/main/java/com/Mrliu/thread/base/ThreadJoinDemo.java @@ -1,4 +1,4 @@ -package com.Mrliu.thread; +package com.Mrliu.thread.base; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/com/Mrliu/thread/ThreadStatusDemo.java b/src/main/java/com/Mrliu/thread/base/ThreadStatusDemo.java similarity index 95% rename from src/main/java/com/Mrliu/thread/ThreadStatusDemo.java rename to src/main/java/com/Mrliu/thread/base/ThreadStatusDemo.java index 87a3eb9..9b28de3 100644 --- a/src/main/java/com/Mrliu/thread/ThreadStatusDemo.java +++ b/src/main/java/com/Mrliu/thread/base/ThreadStatusDemo.java @@ -1,5 +1,6 @@ -package com.Mrliu.thread; +package com.Mrliu.thread.base; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; /** diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/AQSTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/AQSTest.java new file mode 100644 index 0000000..c0eb75d --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/AQSTest.java @@ -0,0 +1,16 @@ +package com.Mrliu.thread.concurrent.syn; + +import java.util.concurrent.locks.AbstractQueuedSynchronizer; + +/** + * @ClassName AQSTest + * @Description AbstractQueueSynchronizer + * @Author liulei33 + * @Time 2020/3/25 11:57 + */ +public class AQSTest { + + public static void main(String[] args) { +// AbstractQueuedSynchronizer + } +} diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/ConditionTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/ConditionTest.java new file mode 100644 index 0000000..33a9fd1 --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/ConditionTest.java @@ -0,0 +1,10 @@ +package com.Mrliu.thread.concurrent.syn; + +/** + * @ClassName ConditionTest + * @Description 条件变量 + * @Author liulei33 + * @Time 2020/3/25 12:02 + */ +public class ConditionTest { +} diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/LockSupportTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/LockSupportTest.java new file mode 100644 index 0000000..03af2d9 --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/LockSupportTest.java @@ -0,0 +1,10 @@ +package com.Mrliu.thread.concurrent.syn; + +/** + * @ClassName LockSupportTest + * @Description 新通知机制 + * @Author liulei33 + * @Time 2020/3/25 12:03 + */ +public class LockSupportTest { +} diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/LocksTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/LocksTest.java new file mode 100644 index 0000000..e73cb80 --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/LocksTest.java @@ -0,0 +1,10 @@ +package com.Mrliu.thread.concurrent.syn; + +/** + * @ClassName LocksTest + * @Description TODO + * @Author liulei33 + * @Time 2020/3/25 12:04 + */ +public class LocksTest { +} diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/ReentrantRadeWaitLockTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/ReentrantRadeWaitLockTest.java new file mode 100644 index 0000000..52a8961 --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/ReentrantRadeWaitLockTest.java @@ -0,0 +1,10 @@ +package com.Mrliu.thread.concurrent.syn; + +/** + * @ClassName ReentrantRadeWaitLockTest + * @Description 重入读写锁 + * @Author liulei33 + * @Time 2020/3/25 12:00 + */ +public class ReentrantRadeWaitLockTest { +} diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/ReenttrantLockTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/ReenttrantLockTest.java new file mode 100644 index 0000000..57e600e --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/ReenttrantLockTest.java @@ -0,0 +1,10 @@ +package com.Mrliu.thread.concurrent.syn; + +/** + * @ClassName ReenttrantLockTest + * @Description ReenttrantLock:公平非公平锁 + * @Author liulei33 + * @Time 2020/3/25 11:59 + */ +public class ReenttrantLockTest { +} diff --git a/src/main/java/com/Mrliu/thread/concurrent/syn/SynchronizedTest.java b/src/main/java/com/Mrliu/thread/concurrent/syn/SynchronizedTest.java new file mode 100644 index 0000000..59bb4ee --- /dev/null +++ b/src/main/java/com/Mrliu/thread/concurrent/syn/SynchronizedTest.java @@ -0,0 +1,40 @@ +package com.Mrliu.thread.concurrent.syn; + +/** + * @ClassName SynchronizedTest + * @Description Synchronized为对象锁,锁的范围为对象的生命周期 + * @Author liulei33 + * @Time 2020/3/25 12:03 + */ +public class SynchronizedTest { + + private static Object lock; + + //对象锁,等同于test2;test2的锁范围 <= test1 + //锁的生命周期:伴随着对象的生命周期,new SynchronizedTest() + public synchronized void test1(){ + //todo + } + + public void test2(){ + //todo + synchronized(this){ + //todo + } + //todo + } + + //类锁,等同于test4,test4的缩范围 <= test3 + //锁的生命周期伴随着class类的生命周期 + public synchronized static void test3(){ + + } + + public void test4(){ + //todo + synchronized (lock){ + //todo + } + //todo + } +} -- GitLab