fork download
  1.  
  2. class Ideone
  3. {
  4. public static void main (String[] args) throws java.lang.Exception
  5. {
  6. final Object lock1 = new Object();
  7. final Object lock2 = new Object();
  8.  
  9. // 1.スレッド1(mainスレッド)が lock1 のロックを取得する
  10. synchronized(lock1)
  11. {
  12. new Thread(() -> {
  13. // 2.スレッド2が lock2 のロックを取得する
  14. synchronized(lock2)
  15. {
  16. // 3.スレッド2が lock1 のロックを取得しようとするが、
  17. // スレッド1が lock1 のロックを保持しているのでブロックされる。
  18. synchronized(lock1) {}
  19. }
  20. }).start();
  21.  
  22. Thread.sleep(1000);
  23.  
  24. // 4.スレッド1が lock2 のロックを取得しようとするが、
  25. // スレッド2が lock2 のロックを保持しているのでブロックされる。
  26. synchronized(lock2) {}
  27. }
  28. }
  29. }
Time limit exceeded #stdin #stdout 15s 4452352KB
stdin
Standard input is empty
stdout
Standard output is empty