Concurrency Utilities
Doug Lea JSR-166에 의해서 진행된 Concurrency 유틸리티 패키지는 J2SE 1.5 에 특별히 추가 되었습니다. 강력한 상위 레벨 스레드 생성자와 실행자를 포함합니다. 스레드 타스크 프레임워크, 스레드 세이프 큐, 타이머, 락, 다른 동기화 변수를 사용할 수 있습니다.세마포어로 잘 알려진 락은 wait과 비슷하게 코드의 접근을 막을 수 있습니다. 세마포어는 유연합니다. 여러 개의 스레드를 억세스하고 락을 걸 수 있습니다. 다음 예제에서는 단 하나의 세마포어를 사용하고 있습니다.
java.util.concurrent
패키지에서 더 많은 정보를 얻을 수 있습니다.
final private Semaphore s= new Semaphore(1, true); |
Jini Say
자바에서 스레드는 블랙박스입니다. 예측이 불가능하고 구현도 어렵습니다. 가장 큰 문제중 하나인 동기화와 억세스 컨트롤이 해결될 것으로 보입니다.
2004-05-20 23:44:07.0 (papilla 220.122.230.33) D |
Java의 경우 Thread를 상속받아 아주 자유롭게 디자인 하는 것이 가능하기 때문에,
Thread를 상속받아 내부에 progress나 스레드의 상태를 represent할 수 있는 구조로 재 확장 하여 사용하면, 쉽게 예측할수도 있을 뿐더러 대부분의 동기화 문제를 별도의 도구 없이 해결 가능합니다.
뭐든지 자기 입맛대로 상속받아 만들어 쓸 수 있다는 것이 자바의 가장 큰 매력이지요.
단순히 세마포라면 싱크로나이즈드 만으로도 충분하지요. 세마포가 제공하는 정보는 오늘 날의 복잡한 스레드 사이의 동기화 조율을 하기에는 너무 적은 정보일 뿐입니다.