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

网站开发过程中出现的问题教育网站建设的素材

网站开发过程中出现的问题,教育网站建设的素材,什么是网站app建设,做淘宝链接模板网站FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的#xff0c;它等价于可以携带结果的Runnable#xff0c;并且有三个状态#xff1a;等待、运行和完成。完成包括所有计算以任意的方式结束#xff0c;包括正常结束、取消和异常。Future有个get方法而…FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的它等价于可以携带结果的Runnable并且有三个状态等待、运行和完成。完成包括所有计算以任意的方式结束包括正常结束、取消和异常。Future有个get方法而获取结果只有在计算完成时获取否则会一直阻塞直到任务转入完成状态然后会返回结果或者抛出异常。FutureTask有下面几个重要的方法1.get()阻塞一直等待执行完成拿到结果2.get(int timeout, TimeUnit timeUnit)阻塞一直等待执行完成拿到结果如果在超时时间内没有拿到抛出异常3.isCancelled()是否被取消4.isDone()是否已经完成5.cancel(boolean mayInterruptIfRunning)试图取消正在执行的任务用ThreadPoolExecutor和FutureTask实现可取消任务线程池private Map tasks  new HashMap();// 构造一个线程private ThreadPoolExecutor executor  new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, newLinkedBlockingQueue());/*** param tasksList*/public void addTaskList(List tasksList) {for (Callable t : tasksList) {FutureTask futureTask  new FutureTask(t);executor.execute(futureTask);String key Long.toHexString(System.nanoTime());tasks.put(key, futureTask);}}/*** param task* return*/public String addTask(Callable task) {FutureTask futureTask  new FutureTask(task);executor.execute(futureTask);String key Long.toHexString(System.nanoTime());tasks.put(key, futureTask);return key;}/*** param task* return*/public String addDBTask(Callable task) {FutureTask futureTask  new FutureTask(task) {public boolean cancel(boolean mayInterruptIfRunning) {System.out.println(Roll Back and Closs Session);return super.cancel(mayInterruptIfRunning);}};executor.execute(futureTask);String key Long.toHexString(System.nanoTime());tasks.put(key, futureTask);return key;}/*** param key* return*/public boolean taskIsDone(String key) {FutureTask futureTask tasks.get(key);if (futureTask ! null) {return futureTask.isDone();}return false;}/*** param key* return*/public boolean taskIsCancelled(String key) {FutureTask futureTask tasks.get(key);if (futureTask ! null) {return futureTask.isCancelled();}return false;}/*** param key* return*/public String getTaskResult(String key) {FutureTask futureTask tasks.get(key);if (futureTask.isDone()) {try {String result futureTask.get();tasks.remove(key);return result;} catch (InterruptedException e) {e.printStackTrace();return null;} catch (ExecutionException e) {e.printStackTrace();return null;}} else {return null;}}/*** param task* return*/public String addTaskAndWaitResult(Callable task) {FutureTask futureTask  new FutureTask(task);executor.execute(futureTask);String key Long.toHexString(System.nanoTime());tasks.put(key, futureTask);try {return futureTask.get();} catch (InterruptedException e) {e.printStackTrace();return null;} catch (ExecutionException e) {e.printStackTrace();return null;}}/****/public void removeAllTask() {for (String key : tasks.keySet()) {executor.remove((Runnable) tasks.get(key));tasks.remove(key);}}/*** param key*/public void removeQueryTask(String key) {executor.remove((Runnable) tasks.get(key));}/*** param key*/public void removeTask(String key) {tasks.remove(key);}/****/public void clearTaskList() {tasks.clear();}public synchronized void stop(){try {executor.shutdownNow();executor.awaitTermination(1L, TimeUnit.MILLISECONDS);} catch (InterruptedException e) {e.printStackTrace();} finally {executor  null;tasks.clear();tasks  null;}}/*** param key*/public void cancelTask(String key) {FutureTask futureTask tasks.get(key);if (futureTask ! null) {if (!futureTask.isDone()) {futureTask.cancel(true);}}}public void purgeCancelTask() {executor.purge();executor.getQueue();}/*** param args*/public static void main(String[] args) {ImageSearchThreadPool exec  new ImageSearchThreadPool();ArrayList keyList  new ArrayList();ArrayList removeKeyList  new ArrayList();ArrayList cancelKeyList  new ArrayList();for (int i  0; i // 产生一个任务并将其加入到线程池String task  task   (i  1);System.out.println(put   task);keyList.add(exec.addDBTask(new DBTask(task)));}try {Thread.sleep(1L);} catch (InterruptedException e) {e.printStackTrace();}for (int i  0; i if (exec.taskIsDone(keyList.get(i))) {System.out.println(exec.getTaskResult(keyList.get(i)));exec.removeTask(keyList.get(i));removeKeyList.add(keyList.get(i));} else {exec.cancelTask(keyList.get(i));System.out.println(Cancel task:   (i  1));exec.removeTask(keyList.get(i));cancelKeyList.add(keyList.get(i));}}exec.purgeCancelTask();exec.stop();try {Thread.sleep(6000L);} catch (InterruptedException e) {e.printStackTrace();}for (String key : cancelKeyList) {if (exec.taskIsCancelled(key)) {System.out.println(Cancel:   key);}}for (int i  0; i keyList.get(i);}}
http://www.sadfv.cn/news/391005/

相关文章:

  • 怀化网站优化公司有哪些WordPress注册不提示
  • 佛山网站优化怎么做成都建设网站哪家好
  • 南昌网站建设机构安阳网约车
  • 顾客评价网站网站开发资质要求
  • 企业网站开发背景及意义广州有什么好玩的地方推荐一下
  • 网站注册需要多少钱国外网站怎么打开
  • idc 网站备案网页开发工具的作用有多大
  • 网站建设与管理的策划书wordpress+本地编辑
  • 影视网站建设平台长沙服装定制
  • 做网站是否需要自购服务器wordpress怎么上传自己的网站吗
  • 中文域名做的网站有哪些我自己做个网站怎么做
  • 河北网站备案WordPress下载框插件
  • 企业网站建设中图片优化的方法iis 网站访问权限设置
  • 网站建站模版企业网站建设及运营现状分析
  • 哪里有网站开发公司html5国外酷炫网站
  • 天河网站建设用家用路由器ip做网站
  • 网站开发工具的功能有哪些wordpress数据库修改主题
  • 普陀手机网站建设wordpress google搜索
  • 杭州推荐网站建设团队在哪里可以查公司注册信息
  • 网站建设的报告中国最大的网站排名
  • 代理ip提取网站源码网络优化seo是什么工作
  • 如何做授权网站常用的seo查询工具有哪些
  • 高端网站建设高端网站建设专家高端网站建设知识
  • 优购网官网广州seo怎么做
  • 网站对于企业的有哪些装修网站
  • 山东能源集团 网站建设凡科投票
  • 网站开发设计师岗位职责mysql asp网站
  • 甘肃省建设厅执业资格注册网站工业产品设计排版
  • 动易网站系统app开发企业
  • 衡水企业网站建设费用重庆推广网站排名公司