일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 고급 - 스프링 aop
- 자바 중급2편 - 컬렉션 프레임워크
- 2024 정보처리기사 수제비 실기
- 스프링 트랜잭션
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch12
- 자바 고급2편 - 네트워크 프로그램
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch6
- 스프링 mvc2 - 타임리프
- 데이터 접근 기술
- 자바 중급1편 - 날짜와 시간
- @Aspect
- 자바의 정석 기초편 ch7
- 2024 정보처리기사 시나공 필기
- 자바로 계산기 만들기
- 자바의 정석 기초편 ch2
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch9
- 자바 기초
- 자바 고급2편 - io
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch4
- 스프링 mvc2 - 로그인 처리
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch11
- 람다
- 스프링 입문(무료)
- 자바의 정석 기초편 ch5
- Today
- Total
목록자바의 정석 기초편 ch13 (4)
개발공부기록

1) 쓰레드의 동기화(synchronization)한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는 것멀티 쓰레드 프로세스에서는 쓰레드의 작업이 다른쓰레드에 영향을 미칠 수 있음진행중인 작업이 다른 쓰레드에게 간섭받지 않게하려면 '동기화'가 필요하며 동기화를 하려면 간섭받지 않아야 하는 문장들을 '임계 영역'으로 설정해야함임계영역은 락(lock)을 얻은 단 하나의 쓰레드만 출입가능함(객체 1개에 락 1개)(1) synchronized를 이용한 동기화synchronized로 임계영역(lock이 걸리는 영역)을 설정할 때 메서드 전체를 임계영역으로 설정하거나 특정영역을 임계영역으로 지정할 수 있음임계영역은 한번에 한 쓰레드만 사용할 수 있기 때문에 영역을 최소하는 것이 좋으며 임계영역이 많을 ..

1) static void sleep() 자기자신에게 동작하며 현재 쓰레드를 지정된 시간동안 멈추게 함예외처리를 필수로 해야하며 InterruptedException이 발생하면 깨어남특정 쓰레드를 지정해서 멈추게 하는 것은 불가능하며 자기자신의 쓰레드만 적용// 코드 예시static void sleep(long millis) // 천분의 일초 단위 1000 = 1초static void sleep(long millis, int nanos) // 천분의 일초 + 나노초(10의 -9제곱)// 예외처리 항상 필수try { Thread.sleep(1, 500000); // 쓰레드를 0.0015초 동안 멈추게 한다} catch(InterruptedException e) {} // Exception의 자손 -> 예..

1) 쓰레드의 우선순위(priority of thread)작업의 중요도에 따라 쓰레드의 우선순위를 다르게 설정하여 특정 쓰레드가 더 많은 작업시간을 갖게 할 수 있음그러나 희망사항에 불가함(마음대로 진행 되지는 않음) - OS의스케줄러가 참고해서 진행 함void setPriority(int newPriority) //쓰레드의우선순위를 지정한 값으로 변경int getPriority() // 쓰레드의 우선순위를 반환public static final int MAX_PRIORITY = 10 //최대 우선순위public static final int MIN_PRIORITY = 1 //최소 우선순위public static final int NORM_PRIORITY = 5 //보통 우선순위 (1) 예제실행 해보면 ..

1) 쓰레드(1) 프로세스(process - 공장, 작업환경)실행중인 프로그램자원(resource - 메모리, CPU 등등)과 쓰레드로 구성되어 있음(2) 쓰레드(thread - 일꾼) 프로세스 내의 실제 작업을 수행하며 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있음싱글 쓰레드 프로세스 = 자원 + 쓰레드멀티 쓰레드 프로세스(쓰레드가 여러개인 것) = 자원 + 쓰레드 + 쓰레드 + ... + 쓰레드(3) 싱글쓰레드인 2프로세스 vs 1프로세스 + 2 쓰레드하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 비용이 적게 듦자바가 성장한 계기로 과거 웹서버에서 웹프로그램을 작성할 때 CGI(싱글쓰레드) 와 Java Servlet(멀티쓰레드)를 사용 했으나 1999년말 웹사용량..