TestLock.java 723 B

1234567891011121314151617181920212223242526272829
  1. import java.util.concurrent.*;
  2. import java.util.concurrent.locks.*;
  3. public class TestLock {
  4. public static void main(String[] args) {
  5. ExecutorService executor = Executors.newCachedThreadPool();
  6. LockSample ls = new LockSample();
  7. executor.execute(() -> ls.func());
  8. executor.execute(() -> ls.func());
  9. executor.shutdown();
  10. }
  11. }
  12. class LockSample {
  13. private Lock lock = new ReentrantLock();
  14. public void func() {
  15. lock.lock();
  16. try {
  17. for (int i = 0; i < 5; i++) {
  18. System.out.println(i);
  19. Thread.sleep(10);
  20. }
  21. } catch (Exception e) {
  22. } finally {
  23. lock.unlock();
  24. }
  25. }
  26. }