java Worker类怎么用?

说明

1、Worker是ThreadPoolexecutor的内部类,主要用于维持线程执行任务的中断控制状态。

2、在实现Runnable接口的同时继承AQS,实现Runnable接口意味着Worker是线程。

实例

privatefinalclassWorker
extendsAbstractQueuedSynchronizer
implementsRunnable{
/**
*Thisclasswillneverbeserialized,butweprovidea
*serialVersionUIDtosuppressajavacwarning.
*/
privatestaticfinallongserialVersionUID=6138294804551838833L;

/**Threadthisworkerisrunningin.Nulliffactoryfails.*/
//执行任务的线程
finalThreadthread;
/**Initialtasktorun.Possiblynull.*/
//执行的任务
RunnablefirstTask;
/**Per-threadtaskcounter*/
volatilelongcompletedTasks;

/**
*CreateswithgivenfirsttaskandthreadfromThreadFactory.
*@paramfirstTaskthefirsttask(nullifnone)
*/
Worker(RunnablefirstTask){
//新建线程的时候,设置state-1是为了防止线程还未执行时(线程只有在执行的时候才会被中断),就被//其它线程显式调用shutdown方法中断了,因为中断是要判断state大于等于0才会中断
setState(-1);
this.firstTask=firstTask;
//新建了一个线程
this.thread=getThreadFactory().newThread(this);
}

/**DelegatesmainrunlooptoouterrunWorker*/
publicvoidrun(){
runWorker(this);
}

以上就是java Worker类的用法,希望对大家有所帮助。更多Java学习指路:Java基础

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容