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

免费的网站空间电工培训

免费的网站空间,电工培训,做网站准备什么软件,如何做网站关键字优化1. 作用 异步操作获取执行结果取消任务执行&#xff0c;判断是否取消执行判断任务执行是否完毕 2. demo public static void main(String[] args) throws Exception {Callable<String> callable () -> search();FutureTask<String> futureTasknew FutureTask&…

1. 作用

  • 异步操作
  • 获取执行结果
  • 取消任务执行,判断是否取消执行
  • 判断任务执行是否完毕

2. demo

public static void main(String[] args) throws Exception {Callable<String> callable= () -> search();FutureTask<String> futureTask=new FutureTask<>(callable);futureTask.run();// 持续阻塞String s = futureTask.get();System.out.println(s);System.out.println("主线程收集了1颗龙珠");}/*** 收集龙珠*/public static String search() {try {TimeUnit.SECONDS.sleep(2);} catch (InterruptedException e) {throw new RuntimeException(e);}return "找到了1颗龙珠";}

3. 原理

3.1 类关系图

3.2 主要流程

3.3 方法

3.3.1 futureTask.run()

    public void run() {if (state != NEW ||!UNSAFE.compareAndSwapObject(this, runnerOffset,null, Thread.currentThread()))return;try {Callable<V> c = callable;if (c != null && state == NEW) {V result;boolean ran;try {// 执行任务result = c.call();ran = true;} catch (Throwable ex) {result = null;ran = false;setException(ex);}if (ran)// 将结果赋值给outcomeset(result);}} finally {runner = null;int s = state;if (s >= INTERRUPTING)handlePossibleCancellationInterrupt(s);}}protected void set(V v) {if (UNSAFE.compareAndSwapInt(this, stateOffset, NEW, COMPLETING)) {outcome = v;UNSAFE.putOrderedInt(this, stateOffset, NORMAL); // final statefinishCompletion();}}

3.3.2 futureTask.get()

    public V get() throws InterruptedException, ExecutionException {// 当前状态未完成时,进入自旋等待int s = state;if (s <= COMPLETING)s = awaitDone(false, 0L);// 返回子进程的执行结果return report(s);}private int awaitDone(boolean timed, long nanos)throws InterruptedException {final long deadline = timed ? System.nanoTime() + nanos : 0L;WaitNode q = null;boolean queued = false;// 尝试自旋等待结果for (;;) {if (Thread.interrupted()) {removeWaiter(q);throw new InterruptedException();}int s = state;if (s > COMPLETING) {if (q != null)q.thread = null;return s;}else if (s == COMPLETING) // cannot time out yetThread.yield();else if (q == null)q = new WaitNode();else if (!queued)queued = UNSAFE.compareAndSwapObject(this, waitersOffset,q.next = waiters, q);else if (timed) {nanos = deadline - System.nanoTime();if (nanos <= 0L) {removeWaiter(q);return state;}// 多次等待后park一会(自己会醒)LockSupport.parkNanos(this, nanos);}else// 多次等待后park一会(自己不会醒)LockSupport.park(this);}}// 获取结果private V report(int s) throws ExecutionException {Object x = outcome;if (s == NORMAL)return (V)x;if (s >= CANCELLED)throw new CancellationException();throw new ExecutionException((Throwable)x);}

http://www.yidumall.com/news/44710.html

相关文章:

  • 香港做网站一般网站推广要多少钱
  • 做网站工资多少企业做推广有用吗
  • 在百度上做网站找谁cnzz
  • 婚庆网站哪个靠谱百度售后客服电话24小时
  • 广元网站建设seo优化营销制作设计google搜索引擎下载
  • 阿里云网站注册seo商城
  • 西安网站建设有那些公司优化优化
  • 基于asp.net的视频网站开发seo的优点有哪些
  • 有什么网站可以做问卷调查seo整站优化多少钱
  • 免费自建 响应式 网站软文推广模板
  • wordpress seo titleseo优化师培训
  • 专业网站建设报价百度联盟怎么加入
  • 腾讯企点怎么群发消息seo整站优化外包
  • 做博客网站的空间容量需要多少网络营销公司招聘
  • 德阳网站建设ghxhwlsem推广竞价托管
  • 如何使用网站模板建设网站seo教程网站优化
  • 溧水做网站百度快照推广一年要多少钱
  • 如何给企业做网站推广网推公司
  • 福田做网站福田网站建设福田建网站500站长工具海角
  • 网站上图片的链接怎么做教育培训机构
  • 网站建设演示ppt模板最近新闻头条最新消息
  • 河北建设工程招标协会网站西安seo阳建
  • 十大抖音代运营公司网站排名优化教程
  • 服装门户系统网站杭州百度整站优化服务
  • 猪八戒网可以做福彩网站吗郴州网络推广公司排名
  • 建设网站需要两种服务支持seo百度贴吧
  • 重庆cms建站模板郑州百度推广哪家好
  • 政府网站制作平台东营网站建设费用
  • 龙岗 营销型网站建设优化设计五年级下册数学答案
  • 做外贸主要在那些网站找单东莞seo管理