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

WordPress如何推广专业网站优化排名

WordPress如何推广,专业网站优化排名,邢台123网站,网站开发技术前景最好我们的bossgroup和workgroup都是使用的NioEventLoopGroup。其内部有一个EventExecutor类型的数组用来存储所有的线程组。 NioEventLoopGroup {EventExecutor[] children; }NioEventLoopGroup继承自MultithreadEventExecutorGroup,构造函数不指定线程数默认会根据系…

我们的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绑定的selector
thread当前EventLoop的运行线程

主要方法

方法说明
register(Channel channel)绑定channel
addTask(Runnable task)新增一个任务到TaskQueue
pollTask()取出一个任务
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();处理监听到的SelectedKeys
processSelectedKey(SelectionKey k, AbstractNioChannel ch)处理具体的某一key事件
http://www.yidumall.com/news/104949.html

相关文章:

  • 企业网站建设管理系统国内前10电商代运营公司
  • 南阳做网站优化的公司应用商店关键词优化
  • wordpress 开店网站优化推广教程
  • 企业网站一般用什么域名产品宣传推广策划
  • 阿里云重新备案注销主体还是注销网站福建网站建设制作
  • 网站维护要多久时间百度小说排行榜2020
  • 建筑设计说明模板100字关键词的优化和推广
  • 做网站美工收费百度电话号码查询平台
  • 天津网站建设培训学校苏州做网站的专业公司
  • 做网站工作室找客户难天津企业seo
  • 建行国际互联网网站网站seo推广方案
  • 开鲁seo网站百家号权重查询
  • 河南搜索引擎推广价格seo的中文含义是什么意思
  • 做网站需要什么资料百度搜索榜排名
  • 江苏省建设信息网站管理平台小说排行榜
  • 番禺人才网最新招聘市场在哪里?亚马逊关键词快速优化
  • 摇钱树手机论坛网站今日头条新闻发布
  • 新平台怎么推广seo建站网络公司
  • 南阳市住房和建设委员会网站自动推广引流app
  • 桂林漓江简介整站多关键词优化
  • 免费软件库合集软件资料网站如何推销网站
  • 美容 网站源码网站做成app
  • 专业的网页设计和网站制作公司html网页制作成品
  • 做企业网站哪家好欧洲网站服务器
  • 视频网站移动端网站推广和seo
  • 公司网站做一下多少钱seo代码优化
  • 河源网站建设多少钱郑州网站优化推广
  • 个人做跨境电商网站有哪些如何进行品牌宣传与推广
  • 漳州做网站含博大网免费直链平台
  • 快速搭建网站教程电工培训技术学校