728x90
반응형

동기화 3

[OS] Process Management (3) _ 쓰레드, 쓰레드 동기화, 세마포어

쓰레드 프로세스 내에서 실제로 작업을 수행하는 주체를 의미합니다. 모든 프로세스는 한 개 이상의 쓰레드가 존재하며, 두 개 이상의 쓰레드를 가지는 프로세스를 멀티스레드 프로세스라고 합니다. 멀티 쓰레드 쓰레드들이 서로 스위칭 하면서 작업을 처리함으로써 CPU 사용률을 향상시켜주고, 자원을 보다 효율적으로 사용할 수 있습니다. 또한 사용자에 대한 응답성이 높고, 작업이 분리되어 코드가 간결해집니다. 하지만 여러 쓰레드가 같은 프로세스 내에서 자원을 공유하면서 작업하기 때문에 동기화, 교착상태 같은 문제를 조심해야 합니다. 쓰레드 구현 [Java] Thread Thread 하드디스크에 있는 '프로그램'이 실행되어 메모리에 올라가면 '프로세스'가 됩니다. CPU는 프로세스를 처리합니다. 프로세스를 처리할 때 ..

Backend/OS 2022.07.31

[Java] Thread Synchronization

Thread Synchronization 두 개의 쓰레드가 동일한 객체에 접근을 하려고 할 때 공유 자원을 lock하여 다른 쓰레드가 접근하지 못하게 합니다. 그래서 두 개의 쓰레드가 공유자원에 동시에 접근하여 발생하는 문제를 없앨 수 있습니다. Thread Synchronization Problem package Java.thread.syncronizedEx; import static java.lang.Thread.sleep; class Bank{ private int money = 10_000; public void saveMoney(int save){ int curMoney = getMoney(); try { sleep(3000); } catch (InterruptedException e) { th..

JAVA 2022.07.29
728x90
반응형