Java의 동기화 및 Locking 기법 들 (Synchronized, ReentrantLock, Semaphore, Atomic Package, varHandle)
JAVA 2021. 5. 31. 18:54

알고자 하는 것 : Synchronized keyword, ReentrantLock, Semaphore, Atomic, varHandle Synchronized https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html synchronized의 경우에는 다양한 기법으로 동시성 제어에 쉽게 사용될 수 있다. Locks In Synchronized Methods와 Synchronized Statements 으로 나누어서 생각 할 수 있다. Locks In Synchronized Methods public class SynchronizedCounter { private int c = 0; public synchronized void ..

Thread Demon & Join
JAVA 2021. 5. 25. 14:39

Udemy java-multithreading-concurrency-performance-optimization 강좌 코드 사용(MIT 라이센스) Thread Demon Main Thread에서 Child Thread를 실행하게 되면 Main Thread가 종료 되었다고 해도, Child Thread가 끝날 때까지 기다리게 된다. import java.math.BigInteger; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.logging.FileHandler; import java..

Thread 기본 코드
JAVA 2021. 5. 24. 17:17

기본 Thread 실행 코드 import java.util.logging.Logger; public class Main { public static void main(String[] args) { Logger logger = Logger.getLogger("MAin Logger"); //default Thread Thread thread = new Thread(new Runnable() { @Override public void run() { logger.info("Running...1 Name = " + Thread.currentThread().getName()); logger.info("Running...1 = Priority " + Thread.currentThread().getPriority())..

Thread 관련
JAVA 2021. 5. 24. 16:18

Context Switch 하나의 프로세스에는 여러 Thread가 존재 가능 해당 Tread를 Core에서 스케쥴에 따라서 처리 할 때 A Tread와 다음에 오는 B Tread를 Switching하는 것을 Context Switch라고 부름 Thread의 주요 포인트는 다음과 같음 Thread 가 많아지면 관리 시간이 더 늘어나서 Thrashing 확률이 이 높아짐 하나의 프로세스 내 Thread간의 Context Switch 비용이 Process 간의 Switch 비용보다 싸다. Thread는 Process에 비해서 리소스를 적게 먹는다. OS에서의 Thread 스케쥴링 Epoch 라고 하는 주기로 작동 구간을 나눔 Epoch에 Thread를 잘라서 넣음 -> 남은 Thread가 있으면 다음 Epoc..