java 에서의 쓰레딩
자바에서 쓰레드를 생성하는 방법은 2가지이다.
Thread 객체 / Runnable interface
뭐 이 두가지가 있으니 extends 나 implements 나 입맛대로 구현하면 되것다.
단, Runnable 은 워커쓰레드의 동작에 해당되는 run() 메쏘드만을 포함하고 있으므로,
실제 수행단계에서 Thread( Runnable ) 로 객체를 생성해 사용한다.
Thread 객체를 상속받아 필요한 ( run() 같은 ) 메쏘드를 오버라이딩해
구현해 주면 된다.
* 생성자
Thread() : 일반적으로 생성. 쓰레드명은 Thread-카운트 형태로 구성됨
Thread( String ) : 특정 쓰레드명으로 생성
Thread( Runnable ) : Runnable 객체를 사용해 생성
Thread( Runnable, String ) : Runnable 객체와 쓰레드명 지정가능
Thread( ThreadGroup, String ) : 그룹 생성
* 쓰레드의 동기화
synchronized : 블럭/객체/클래스 동기화
함수 선언시 synchronized 를 붙이면 해당 함수 자체에 임계영역이 지정됨.
일반적으로 많이 사용됨.
synchronized( obj ) { }; 형태는 객체를 lock 하고,
synchronized( obj.class ) { }; 클래스를 lock 하게된다.
notification : WaitForSingleObject 같은 녀석으로 Object 객체에 구현되어있으니 모든 객체들에
포함된 녀석이라 할 수 있다.
일단 synchronized 를 통해 임계영역을 설정하고, 해당 영역에서 플래그나 변수를
검사해 wait() 메쏘드로 대기한다.
notify(), notifyAll() 메쏘드로 대기중인 쓰레들을 다시 동작시킨다.
휴~ 오늘도 역시 기본만~ -_-;;
'프로그래밍 > JAVA' 카테고리의 다른 글
Apache HttpClient 관련 정리 (0) | 2014.03.11 |
---|---|
[JAVA TV] MHP 배경이미지 처리 (0) | 2013.12.27 |
[JAVA TV] 타이머 (0) | 2013.12.27 |
[awt] 이미지 읽기~ (0) | 2013.12.17 |
GSON 간단 사용 예 (0) | 2013.09.12 |
CRC16-CCITT crc생성함수 (0) | 2012.10.04 |
ExecutorService (0) | 2012.05.11 |
정규식 표현 (0) | 2012.04.05 |
클래스 동적 생성,호출 (리플렉션) (0) | 2010.09.04 |
이클립스(갈릴레오) SVN 설정 (0) | 2009.11.12 |