억대 연봉을 위한 인간수업
반응형
[Java] Lock에 대해서
Develop/Java 2023. 7. 19. 00:13

Lock? 멀티스레드를 사용하는 자바에서 lock은 동기화를 지원하기 위해 [Lock]이라는 것을 사용한다. lock을 사용하기 위한 키워드로는 synchronized와 lock.lock();이 있다. synchronized synchronized는 해당 키워드를 이용해 메소드에서도 사용 가능하고, 블럭으로도 사용할 수 있다. symchronized는 스레드 하나만 임계영역 지정이 가능해, 너무 세분화해서 lock을 걸면, 오버헤드가 발생할 수 있어서 필요한 부분에만 lock을 사용할 수 있게 주의해야 한다. 메소드에서 사용 메소드에 synchronized 키워드를 아래 예제처럼 사용할 수 있다. public synchronized void Test(){ //실행할 코드입력 //메소드 실행시 임계영역이 ..

article thumbnail
[Java] Synchronized 동기화 예제
Develop/Java 2023. 5. 14. 20:50

멀티 스레드를 잘 사용하기 위해선 동기화 문제를 해결해야 한다. Java에선 멀티 스레드를 지원하기 위한 구현체를 제공하는데 그 중 Synchronized를 사용하여 동기화와 Critical Section을 사용해보자. 멀티스레드의 동기화를 사용하지 않을 경우 멀티스레드를 구현하는 데 동기화를 사용하지 않는 예제 코드는 아래와 같다. Thread를 두 개 만들어 멀티 스레드를 구현한 다음, CountCheck의 더하기를 멀티스레드로 실행한다. Main package org.example; public class Main { public static void main(String[] args) { TaskRunnuble taskR = new TaskRunnuble(); Thread th1 = new Thr..

반응형