일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 게시글 목록 api
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch12
- @Aspect
- 스프링 mvc1 - 서블릿
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch9
- 스프링 mvc2 - 타임리프
- jpa - 객체지향 쿼리 언어
- 스프링 mvc2 - 로그인 처리
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch11
- 자바 기본편 - 다형성
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 검증
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch8
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch3
- 스프링 입문(무료)
- 자바의 정석 기초편 ch13
- 스프링 mvc1 - 스프링 mvc
- 스프링 고급 - 스프링 aop
- 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년말 웹사용량..