2012-04-18 3 views
0

Я ищу для совместного использования объекта между приблизительно 20 каналами в Netty через вложение. ех ..Netty - Предоставить общий доступ к ссылкам между каналами

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

Этот объект будет вести статистику как команды отправляются, как долго мы были связаны, а также будет использоваться в качестве сигнала отдельных каналов для преформ конкретных действий. У кого-нибудь есть опыт? Существуют ли какие-либо проблемы с потоками, кроме использования синхронизированных блоков при обновлении данных/доступа к данным? Любой совет будет очень благодарен!

ответ

1

Если вы хотите разделить объект между каналами, то введите его непосредственно в ChannelHandler или используйте статический экземпляр ChannelLocal.

Убедитесь, что ваш объект является потокобезопасным!

+0

Любые причины, в частности, что вы не присоедините их непосредственно к каналу? Я взял пик в экземплярах ChannelLocal, но вложения выглядят быстрее и проще. –