当前位置: 首页 > news >正文

做学校子网站wordpress 洛米

做学校子网站,wordpress 洛米,高端装饰公司网站设计,wordpress浮动导航菜单使用Netty编程时#xff0c;我们经常会从用户线程#xff0c;而不是Netty线程池发起write操作#xff0c;因为我们不能在netty的事件回调中做大量耗时操作。那么问题来了 – 1#xff0c; writeAndFlush是线程安全的吗#xff1f; 2#xff0c; 是否使用了锁#xff0c;…使用Netty编程时我们经常会从用户线程而不是Netty线程池发起write操作因为我们不能在netty的事件回调中做大量耗时操作。那么问题来了 – 1 writeAndFlush是线程安全的吗 2 是否使用了锁导致并发性能下降呢   我们来看代码 – 在DefaultChannelHandlerContext中 Overridepublic ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) {DefaultChannelHandlerContext next;next findContextOutbound(MASK_WRITE);ReferenceCountUtil.touch(msg, next);next.invoker.invokeWrite(next, msg, promise);next findContextOutbound(MASK_FLUSH);next.invoker.invokeFlush(next);return promise; }   在DefaultChannelHandlerInvoker.java中 Overridepublic void invokeWrite(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {if (msg null) {throw new NullPointerException(msg);}if (!validatePromise(ctx, promise, true)) {// promise cancelledReferenceCountUtil.release(msg);return;}if (executor.inEventLoop()) {invokeWriteNow(ctx, msg, promise);} else {AbstractChannel channel (AbstractChannel) ctx.channel();int size channel.estimatorHandle().size(msg);if (size 0) {ChannelOutboundBuffer buffer channel.unsafe().outboundBuffer();// Check for null as it may be set to null if the channel is closed alreadyif (buffer ! null) {buffer.incrementPendingOutboundBytes(size);}}safeExecuteOutbound(WriteTask.newInstance(ctx, msg, size, promise), promise, msg);}}   private void safeExecuteOutbound(Runnable task, ChannelPromise promise, Object msg) {try {executor.execute(task);} catch (Throwable cause) {try {promise.setFailure(cause);} finally {ReferenceCountUtil.release(msg);}}}   可见writeAndFlush如果在Netty线程池内执行则是直接write否则将作为一个task插入到Netty线程池执行。   《Netty权威指南》写到通过调用NioEventLoop的execute(Runnable task)方法实现Netty有很多系统Task创建他们的主要原因是当I/O线程和用户线程同时操作网络资源时为了防止并发操作导致的锁竞争将用户线程的操作封装成Task放入消息队列中由I/O线程负责执行这样就实现了局部无锁化。   参考http://www.cnblogs.com/zemliu/p/3667332.htmlhttp://netty.io/5.0/xref/io/netty/channel/DefaultChannelHandlerInvoker.htmlhttp://www.infoq.com/cn/articles/netty-version-upgrade-history-thread-part/转载于:https://www.cnblogs.com/Binhua-Liu/p/5295365.html
http://www.zqtcl.cn/news/108118/

相关文章:

  • 沽源网站建设娄底网站建设工作室
  • 商场网站 策划医疗网站是否全部需要前置备案
  • 电商网站开发实训心得wordpress网络验证
  • 美图网seo 优化技术难度大吗
  • 知名的传媒行业网站开发天空网站开发者
  • 网站域名年费多少钱二手手表交易平台哪个好
  • 用易语言做抢购网站软件下载自己可以做企业网站吗
  • 公司网站续费帐怎么做互联网专业
  • 网站开发公司深圳外贸营销策略
  • 主要搜索引擎网站搜索结果比较wordpress novelist
  • 校园网站制度建设WordPress手机不显示
  • 胶州哪家公司做网站wordpress的html
  • 辽宁省建设厅网站江苏住房和城乡建设厅官方网站
  • 链接关系 网站层次结构南宁做网站找哪家公司
  • 定制网站开发哪家好崇明建设镇网站
  • 上海网站制作建设是什么wordpress管理页面
  • 酒店网站设计的目的和意义网络营销相关理论
  • 用google翻译做多语言网站企业官网建站网站
  • 南阳网站建设培训学校莞城短视频seo优化
  • 开发商城网站建设做网站租用那个服务器好
  • 2015做导航网站wordpress中文主
  • 中英文网站建设报价河南网站建设推广公司
  • 什么是建设网站提升seo排名平台
  • 广告设计模板网站模版网站是什么意思
  • 网站网站模板企业网站制作排名
  • 食品网站开发淘客手机版网站怎么做
  • 厦门市网站建设app开发水务 网站建设
  • jfinal网站开发装修公司加盟哪家最好
  • 成都个人网站制作石家庄设计网站公司
  • 阿里巴巴网站本土化建设烟台市两学一做网站