2012-04-18 6 views
0

첨부 파일을 통해 Netty의 약 20 개 채널간에 개체를 공유하려고합니다. 전 ..Netty - 채널 간 첨부물 공유

SharedStatsObj sso ... 
ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port)); 
ChannelHandlerContext c = future.getChannel().getPipeline().getContext("handler") 
c.setAttachment(sso); 

는 명령과 같은 통계를 유지하는 것이 목적은 우리가 연결되어 있고, 또한 특정 작업을 미리 형성하는 개별 채널을 신호하는 데 사용되는 시간, 전송되는. 이 경험이있는 사람이 있습니까? 데이터를 업데이트하거나 데이터에 액세스 할 때 동기화 된 블록을 사용하는 것 외에 어떤 스레딩 문제가 있습니까? 모든 조언을 크게 주시면 감사하겠습니다!

답변

1

채널간에 Object를 공유하려면 ChannelHandler에 직접 삽입하거나 정적 ChannelLocal 인스턴스를 사용하십시오.

개체가 스레드로부터 안전한지 확인하십시오!

+0

특별히 채널에 직접 첨부하지 않는 이유는 무엇입니까? ChannelLocal 인스턴스에서 최고점을 찍었지만 첨부 파일이 더 빠르고 쉽게 보입니다. –