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

电商网站开发环境网站建设营销一站式服务

电商网站开发环境,网站建设营销一站式服务,济南网站关键词优化公司,淘宝客网站做好了该怎么做我们的bossgroup和workgroup都是使用的NioEventLoopGroup。其内部有一个EventExecutor类型的数组用来存储所有的线程组。 NioEventLoopGroup {EventExecutor[] children; }NioEventLoopGroup继承自MultithreadEventExecutorGroup#xff0c;构造函数不指定线程数默认会根据系…我们的bossgroup和workgroup都是使用的NioEventLoopGroup。其内部有一个EventExecutor类型的数组用来存储所有的线程组。 NioEventLoopGroup {EventExecutor[] children; }NioEventLoopGroup继承自MultithreadEventExecutorGroup构造函数不指定线程数默认会根据系统cpu进行计算获取。是一个线程池实现类。 在MultithreadEventExecutorGroup构造函数里初始化children。调用newChild方法创建NioEventLoop实例赋给children。EventExecutor[] children 元素实例类型是NioEventLoop。 来看下具体代码 protected MultithreadEventExecutorGroup(int nThreads, Executor executor,EventExecutorChooserFactory chooserFactory, Object... args) {checkPositive(nThreads, nThreads);if (executor null) {//executor 初始化executor new ThreadPerTaskExecutor(newDefaultThreadFactory());}children new EventExecutor[nThreads];for (int i 0; i nThreads; i ) {boolean success false;try {//newChild方法就是创建一个NioEventLoop实例设置executorchildren[i] newChild(executor, args);success true;}}//... }executor是ThreadPerTaskExecutor类型其execute方法就是创建一个线程执行runnable参数任务。 public final class ThreadPerTaskExecutor implements Executor {private final ThreadFactory threadFactory;public ThreadPerTaskExecutor(ThreadFactory threadFactory) {this.threadFactory ObjectUtil.checkNotNull(threadFactory, threadFactory);}Overridepublic void execute(Runnable command) {threadFactory.newThread(command).start();} }newChild方法就是创建一个NioEventLoop实例设置executor。 NioEventLoop是一个很重要的类很多事件逻辑都是在该类中完成。 下面是NioEventLoop类主要方法。 NioEventLoop继承自SingleThreadEventExecutor。是一个单线程处理类。我们创建的channel都会和该类进行绑定。 主要属性 属性名说明taskQueue任务队列被执行的任务首先会被放到任务队列。executor执行器上面创建child传入ThreadPerTaskExecutor类型selector绑定的selectorthread当前EventLoop的运行线程 主要方法 方法说明register(Channel channel)绑定channeladdTask(Runnable task)新增一个任务到TaskQueuepollTask()取出一个任务startThread()启动线程会判断当前EventLoop内的线程状态线程是否已运行否则调用 doStartThread()启动线程doStartThread()会调用executor.execute(Runnable)启动一个线程运行入参任务将启动线程赋值给thread变量。入参会调用run()方法。execute(Runnable task)执行一个任务首先会调用addTask加入队列然后判断是否wakeup执行线程inEventLoop(Thread thread)判断当前线程和内部变量thread是否是同一个线程runAllTasks(long timeoutNanos)执行任务队列里的任务select(curDeadlineNanos)调用Selector的select方法阻塞监听事件发生processSelectedKeys();处理监听到的SelectedKeysprocessSelectedKey(SelectionKey k, AbstractNioChannel ch)处理具体的某一key事件
http://www.tj-hxxt.cn/news/140143.html

相关文章:

  • 网站模板为什么不好怎么防止网站攻击
  • app产品网站模板北京新冠确诊最新数据
  • 网站免费php模板自助建网站的平台 数据库
  • 商场网站建设公司怎么做微信点击网站打赏看片
  • 盐城个人网站建设装修网站建设方案书
  • 软件开发网站建设wordpress controls
  • 建设企业网站的具体步骤wordpress feed 地址
  • 广告网站建设实训报告dw建网站
  • 医疗网站建设信息做购物网站安全吗
  • nodejs做视频网站coding免费搭建wordpress
  • 网站后台发布了但看不见做视频的网站带模板
  • 厦门网站制作收费帮人做彩票网站支付接口
  • 酒店预订网站模板网站制作难不难
  • 公司网站建设多少钱网站建设的一些销售技巧
  • 南京营销型网站建设公司丹东网站优化
  • 免费给人做网站的签订网站建设合同
  • 冀州市网站建设台州建站服务
  • 做网站的工作记录网站内容建设 内容审核流程
  • 绍兴柯桥建设局网站网站开发项目业务要求
  • php网站制作软件网站开发课程知识点总结
  • 建设网站的请示网盟推广图片
  • 涿州网站网站建设mvc5网站开发之六 管理员
  • 网站有情链接怎么做关于做网站ppt
  • 15 企业网站优化方案有哪些内容wordpress 梦月酱
  • 微信商城网站建设视频点击图片跳转到网站怎么做链接
  • 做百度手机网站点击软织梦网站模板免费下载
  • 市面上做网站多少钱响应式官方网站
  • 《网站建设》期末考试湖北网站设计
  • 网站优化专家做网站推广有什么升职空间
  • 如何做公司的英文网站各大网站推广平台