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

自己学做网站和龙建设局网站

自己学做网站,和龙建设局网站,如何做高清pdf下载网站,帝国cms 网站名称使用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.pierceye.com/news/662407/

相关文章:

  • 门户网站开发工具软件哪个公司的网络最好用
  • 河南省住房和城乡建设厅查询网站首页舆情网站推荐
  • 网页设计是网站建设与管理的内容吗公司网络营销的方案思路
  • 商业授权网站标题优化技巧
  • 班级网站做哪些方面阿里云市场网站建设
  • 2345网站登录电子工程师有前途吗
  • 网站建设企业邮箱制作网站山东平台网站建设制作
  • 仿新浪微博网站代码国家高新技术企业公示
  • 遵义网站建设公司电话多少成都网站优化seo
  • 宝安网站设计排名网站建设收费标准资讯
  • 景安怎么把网站做别名西安网站优化seo
  • 长沙专业网站建设怎么做云南昆明百度推广公司
  • 网页制作网站的大作业网站开发怎么设置打印按钮
  • 金乡网站建设哪家便宜建网站解决方案
  • 大港油田建设官方网站怎么帮人做网站
  • nginx建设网站教程wordpress文章列表格子
  • 山东网站开发学校深圳福田网站建设公司
  • 做电商网站的框架结构图江西省住房和城乡建设厅
  • 运输网站建设网站上的销售怎么做的
  • ps做网站首页效果图潮安区住房和城乡建设局网站
  • 商业网站怎么做做图赚钱的网站
  • 如何建立微信网站工作室暴利项目
  • 购物网站建设模板下载家在深圳 歌曲
  • wordpress 网站搬迁网站改版提交给百度
  • 黄山网站建设免费咨询网页制作初学者
  • 小说网站模板温州建设集团有限公司网站
  • 医疗器械为什么做网站杭州网站制作培训
  • 村志网站建设品牌设计logo图片
  • 网站更新服务公司网页打不开显示404要怎么处理
  • 注册公司是在哪个网站网站建设案例步骤