# synchronized

멀티스레드 환경에서 싱글톤 패턴 사용하기
디자인 패턴을 읽다보면 싱글턴 패턴이 멀티스레드 환경에서는 하나의 객체만을 생성하지 않을 수도 있다고 했다.t1 스레드는 람다를 이용해서 Thread 클래스의 run메서드를 구현해주었고t2 스레드는 Thread 클래스를 상속해서 만든 클래스에 run메서드를 구현해주었고

Synchronized Collection & Concurrent Collection (23.03.08 2차 업데이트)
Synchronized Collection과 Concurrent Collection의 차이에 정리해보려 한다.
Synchronized 키워드
멀티스레드 환경에서는 여러 스레드가 변경 가능한 공유 데이터를 동시에 수정하려 할 때 레이스 컨디션이 발생한다. 자바에서는 이러한 레이스 컨디션을 회피할 수 있도록 synchronized 기능을 제공한다. synchronized 키워드를 붙이면 해당 블록에는 오직 하나

동시성과 병렬성
멀티 스레드를 공부하면서 자주 접하는 동시성(concurrency)과 병렬성(parallelism)에 대해 공부하다 보니 점점 양이 많아져 정리해 보려고 합니다.출처 : https://seamless.tistory.com/42작업이 동시에 발생하는 것처럼 보이

[Design Pattern] 싱글톤 패턴
📚 싱글톤 패턴 싱글톤 패턴은 특정 객체에 대한 인스턴스를 전역 애플리케이션 레벨에 오직 1개만 생성하고 이를 공유하기 위해서 사용하는 디자인 패턴이다 이처럼 단순히 특정 객체의 Constructor를 외부에 열어두게 되면 new 연산자를 통해서 해당 객체의 인스턴

Static Synchronization in Java
문제 아래 코드의 예상되는 출력 값과 그 이유를 설명하시오.object level에 Method에만 해당된다.Method 또는 Block이 동기화된 경우 실행을 시작하려면 object-level lock이 필요하다.동기화(Synchronization)는 deadlock
[프로세스 동기화] 모니터
세마포어와 뮤텍스를 통해서 임계구역에 대해 상호배제를 통한 동기화를 알아보았다. 두개의 동기화 방법의 단점이라면 임계구역으로 들어가기전 wait(), 임계구역을 빠져나올때 signal 혹은 release를 해주는 등의 코드를 프로그래머가 직접 넣어주어야 하는것이다. 프

스레드(Thread), 멀티스레드(Multi-Thread)!
스레드와 멀티스레드에 대해 알아보고 코드까지 작성해보도록 하자프로세스?스레드를 알려면 먼저 프로세스의 개념부터 알아야한다.프로세스는 현재 실행되고 있는 프로그램을 의미한다.더 붙여 설명하면 메모리에 올라가서 실행되는 상태이다.운영체제 상 프로세스에는 4가지 메모리 영역
싱글톤 인스턴스
클래스가 JVM으로 로딩될 때 최초 한번 생성하는 방식이다.이 방법은 싱글톤 객체를 생성하는 리소스 비용이 적을 때 사용하는 것이 바람직하다. 만약, 어플리케이션에서 해당 객체를 사용하지 않는데도 불구하고 무조건 싱글톤 객체를 생성하기 때문이다.그리고 이러한 방식은 객
[Java] 동기화(synchronized) 메소드/블록
일전 공유객체를 사용하여, 여러개의 스레드가 공유객체의 메소드를 활용하는 상황이 일어난다고 가정해보자.위 MusicBoxTester의 main thread를 실행하면 playMusicA메소드와 playMusicB메소드가 순서 상관없이 뒤죽박죽 호출 및 실행된다.이를 다
[스터디]Java의 정석 25일차
멀티쓰레드 프레스스의 경우 여러 쓰레드가 같은 프로세스내의 자원을 공유하여 작업하기 때문에 서로의 작업에 영향을 주게 된다. 서로의 영향으로 인해 의도했던 것과 다른 결과를 얻을 수 있는데, 이러한 일이 발생하는 것을 ...
[자바] 쓰레드의 동기화
멀티쓰레드 프로세스의 경우 여러 쓰레드가 같은 프로세스 내의 자원을 공유해서 작업하기 때문에 서로의 작업에 영향을 주게 된다. 이러한 일을 방지하기 위해 임계 영역(Critical Section과 잠금(락, lock)이 있다.공유 데이터를 사용하는 코드 영역을 임계 영

[JAVA] Thread / SingleThread / MultiThread / ThreadSynchronized
메모리를 할당받아 실행 중인 프로그램을 프로세스라고 합니다.프로세스 내의 명령어 블록으로 시작점과 종료점을 가진다.실행중에 멈출 수 있으며 동시에 수행 가능하다.어떠한 프로그램내에서 특히 프로세스 내에서 실행되는 흐름의 단위.2가지 방법① 직접 상속 받아 스레드 생성②

4-4.(2) Thread 동기화 Sync1
T15_SyncThreadTest(1) 공통으로 사용할 데이터 클래스 ShareObject의 객체 sObj 생성(2) 쓰레드 WorkerThread 에 공통으로 사용할 객체 sObj 넘겨줌 방법1> 메서드 자체에서 동기화 처리하기: public synchronized