deadlock2 [OS] Deadlock 예제 코드 (with Java, C++) [Example 1 in Java] public class DeadLock { public static void main(String[] args) throws InterruptedException { Thread mainThread = Thread.currentThread(); Thread thread1 = new Thread(new Runnable() { @Override public void run() { try { mainThread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } }); thread1.start(); thread1.join(); } } // https://stackoverflow.com/questions/1.. 2022. 7. 24. [OS] Deadlock (데드락) - 사용자 A,B라는 2명과 연장 도구 '망치', '스패너' 총 2개 있다.두 사용자는 망치&스패너를 모두 써서 작업해야 한다. 먼저 사용자 A는 망치를 사용하고, B는 스패너를 쓴다. 그러다 사용자 A는 스패너가 필요하기에 망치를 쥐고 기다린다. 사용자 B도 자신의 작업을 마쳐 망치가 필요로 하지만 A를 배려하여 기다린다. ==> 사용자 A,B는 각자의 tool을 가진 채로 한 쪽이 먼저 주겠거니... 하며 영원히 기다린다(loop). - 다수의 process들 사이에서 resource가 공유되며 발생하는 문제 - 공유된 resource 는 Files, Database Tables, Memory, Peripherals(마우스, 프린터 등 주변기기), Network 등이 있음 - deadlock 은 Th.. 2022. 7. 21. 이전 1 다음