2011-03-29 3 views
3

연결 당 스레드 모델과 NIO 모델 (예 : Netty 사용)에서 자원을 보호하는 방법에는 어떤 차이가 있습니까? 예를 들어, 전역 객체가있는 경우 가장 안전한 방법은 스레드로부터 안전하도록 만드는 것입니다. syncronized입니다.Java NIO : 글로벌 데이터를 효과적으로 보호하는 방법은 무엇입니까?

NIO 기반 통신을 사용할 때 동일한 접근 방식을 사용해야합니까? 내가 알고 있듯이 NIO의 쓰레드는 연결 당 쓰레드보다 더 귀중한 자원이다. 동기화 된 리소스가 해제되기를 기다리는 여러 스레드가 차단되는 경우이 리소스와 관련이없는 다른 요청 처리 성능에 영향을 미칠 수 있습니까? 구현에 따라 다르면 구체적으로 Netty에서 어떻게 작동합니까?

답변

1

스레드 안전성 구현은 NIO에서 다른 스레드 풀과 동일합니다. (단 하나의 스레드가없는 한)

스레드가 많거나 많으면 (주로 유휴 상태) 뜨거운 리소스로 인해 처리가 지연됩니다. 문제는 기본적으로 동일합니다.

자원이 아닌 작업을 처리합니다. 최신 리소스를 사용하면 해당 리소스를 사용하는 작업은 지연되지만 해당 작업에 종속되지 않는 작업은 지연 될 수 있습니다.

관련 문제