일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Data Structure
- string
- Tree
- bit manipulation
- 코테
- Number Theory
- Binary Search
- simulation
- 코딩테스트
- 구현
- Binary Tree
- Class
- hash table
- greedy
- array
- dynamic programming
- sorting
- SQL
- Counting
- Method
- Stack
- java
- implement
- geometry
- 파이썬
- two pointers
- 자바
- Math
- Matrix
- database
- Today
- Total
목록Scheduling (2)
코린이의 소소한 공부노트

[동기화가 필요한 이유] 1. 멀티 쓰레드 프로세스에서는 다른 쓰레드의 작업에 영향을 미칠 수 있다. - 진행 중인 작업이 다른 쓰레드에게 간섭받지 않게 하려면 동기화가 필요하다. 2. 동기화를 하려면 다른 쓰레드에게 간섭받지 않아야 하는 문장들을 임계 영역(critical section)으로 설정한다. - 임계 영역은 락(lock)을 얻은 단 하나의 쓰레드만 출입이 가능하다.(객체 1개에 락 1개) - 락을 걸어둠으로써 데이터의 일관성을 유지하게 한다. - 임계 영역이 많을수록 성능이 떨어지기 때문에 최소한의 영역만 설정한다. [synchronized 키워드를 이용한 동기화] 1. 임계 영역을 설정하는 방법 // 1) 특정한 영역을 임계 영역으로 지정 synchronized(객체의 참조변수) { // ..

[데몬 쓰레드] boolean isDaemon() // 쓰레드 그룹이 데몬 쓰레드 그룹이면 true를 반환한다. void setDaemon(boolean on) // 쓰레드를 데몬 쓰레드 또는 사용자 쓰레드로 변경한다. on을 true로 지정하면 데몬 쓰레드가 된다. // setDaemon()은 반드시 start()를 호출하기 전에 실행되어야 한다. // start() 후에는 데몬 쓰레드로 변경할 수 없기 때문이다. // start() 전에 setDaemon()을 호출하면 IllegalThreadStateException이 발생한다. 1. 일반 쓰레드(non-daemon thread)의 작업을 돕는 보조적인 역할을 수행하는 쓰레드 2. 일반 쓰레드가 모두 종료되면 자동적으로 종료된다. 3. 가비지 컬렉터..