dengxinyi 6 年之前
父节点
当前提交
c5fbe04472
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29 0
      oj/concurrent/TestLock.java

+ 29 - 0
oj/concurrent/TestLock.java

@@ -0,0 +1,29 @@
+import java.util.concurrent.*;
+import java.util.concurrent.locks.*;
+
+public class TestLock {
+    public static void main(String[] args) {
+        ExecutorService executor = Executors.newCachedThreadPool();
+        LockSample ls = new LockSample();
+        executor.execute(() -> ls.func());
+        executor.execute(() -> ls.func());
+        executor.shutdown();
+    }
+}
+
+class LockSample {
+    private Lock lock = new ReentrantLock();
+
+    public void func() {
+        lock.lock();
+        try {
+            for (int i = 0; i < 5; i++) {
+                System.out.println(i);
+                Thread.sleep(10);
+            }
+        } catch (Exception e) {
+        } finally {
+            lock.unlock();
+        }
+    }
+}