본문 바로가기

Synchronized

(2)
자바 동기화, 어설프게 아는 사람이 더 무섭다(java synchronized에 대한 착각, thread-safe) '동기화'문제로 고민한 썰 동기화 문제 이펙티브 자바를 읽던 중, 아이템 78에 있는 자바 동기화 문제로 다양한 상상(?)을 했던 썰을 풀려고 합니다. import java.util.concurrent.TimeUnit; public class Main { private static boolean stopRequested; public static void main(String[] args) throws InterruptedException{ System.out.println("hello world!"); Thread backgroundThread = new Thread(() -> { int i=0; while(!stopRequested){ i++; } }); backgroundThread.start();..
자바 쓰레드 (멀티스레드, 스레드 세이프, 스레드 풀) 자바 쓰레드 (JAVA Thread) 쓰레드 : 프로세스(실행중인 프로그램)에서 하나의 실행 흐름.자바는 멀티 쓰레드를 지원하는 언어로 멀티 쓰레드란 말 그대로 하나의 프로그램에서 여러 개의 실행 흐름을 만들고 실행 할 수 있다는 것이다.멀티쓰레드를 사용 하는 이유 : 외부와의 연계같이 대기 시간이 발생했을 때 기다리는 동안 다른 일을 처리할 수 있게 해서 처리 속도를 빠르게 하기 위함이다.* 단, CPU코어 수가 적으면 쓰레드를 그 만큼 만들 수 없기 때문에 드라마틱하게 빨라지지 않고, 처리하는 데이터 양이 적을 때에도 속도가 많이 빨라지지 않기 때문에 쓰레드를 적절한 경우에 사용하는 것이 좋다.쓰레드 만드는 법 1. Runnable 인터페이스를 상속(확장)한 클래스를 만든다. (Runnable 인터페..