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

什么软件可以建设网站dede企业网站

什么软件可以建设网站,dede企业网站,企业问题及解决方案,app开发注意事项Runnable和Callable的区别是#xff0c;(1)Callable规定的方法是call(),Runnable规定的方法是run(). (2)Callable的任务执行后可返回值#xff0c;而Runnable的任务是不能返回值得(3)call方法可以抛出异常#xff0c;run方法不可以(4)运行Callable任务可以拿到一个Future对象…Runnable和Callable的区别是(1)Callable规定的方法是call(),Runnable规定的方法是run(). (2)Callable的任务执行后可返回值而Runnable的任务是不能返回值得(3)call方法可以抛出异常run方法不可以(4)运行Callable任务可以拿到一个Future对象表示异步计算的结果。它提供了检查计算是否完成的方法以等待计算的完成并检索计算的结果。通过Future对象可以了解任务执行情况可取消任务的执行还可获取执行结果。 1.1使用Runnble接口 创建线程 public class RunnableTest implements Runnable {Overridepublic void run() {System.out.println(this thread name is:Thread.currentThread().getName());}public static void main(String[] args) {System.out.println(Thread.currentThread().getName());RunnableTest r new RunnableTest();Thread t new Thread(r);t.start();} } 或者使用匿名类实现: Thread thread new Thread(new Runnable() {public void run() {// TODO Auto-generated method stubSystem.out.println(匿名类实现线程);}使用1.2 使用 Executors 创建线程 package com.asiainfo.proxydemo;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ThreadExecutorService {//设置线程的数量private static int POOL_NUM10;/*** param args*/public static void main(String[] args) { // ExecutorService newFixedThreadPool Executors.newFixedThreadPool(3); // ExecutorService newFixedThreadPool Executors.newCachedThreadPool(); // ExecutorService newFixedThreadPool Executors.newScheduledThreadPool(3); // ExecutorService newFixedThreadPool Executors.newSingleThreadExecutor();ExecutorService newFixedThreadPool Executors.newSingleThreadScheduledExecutor();for (int i 0; i POOL_NUM; i) {RunnableImpl runnableImpl new RunnableImpl(thread--i);newFixedThreadPool.execute(runnableImpl);}newFixedThreadPool.shutdown();}} class RunnableImpl implements Runnable{private String name;public RunnableImpl(String name) {super();// TODO Auto-generated constructor stubthis.namename;}public void run() {// TODO Auto-generated method stubSystem.out.println(hello ExecutorServicename);}} 2.1 使用Callable 创建线程 package com.asiainfo.proxydemo;import java.util.concurrent.Callable; import java.util.concurrent.FutureTask;public class ThreadCallable {/*** param args*/ public static void main(String[] args) {Ticketsjava.lang.Object tickets new TicketsObject();FutureTaskjava.lang.Object futureTask new FutureTaskObject(tickets);Thread thread new Thread(futureTask);System.out.println(Thread.currentThread().getName());thread.start(); } } class TicketsObject implements CallableObject{/* (non-Javadoc)* see java.util.concurrent.Callable#call()*/public Object call() throws Exception {// TODO Auto-generated method stubSystem.out.println(Thread.currentThread().getName()通过实现Callable接口通过FutureTask包装器来实现线程);return null;}} 2.2 使用 Executors 结合Callable 创建多线程 在Java5之 后任务分两类一类是实现了Runnable接口的类一类是实现了Callable接口的类。两者都可以被ExecutorService执行但是 Runnable任务没有返回值而Callable任务有返回值。并且Callable的call方法只能通过ExecutorService的 submitCallableT task 方法来执行并且返回一个 T FutureT是表示任务等待完成的 Future. public interface CallableV返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。 Callable 接口类似于 Runnable两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果并且无法抛出经过检查的异常。 Executors 类包含一些从其他普通形式转换成 Callable 类的实用方法。 Callable中的call方法类似Runnable的run方法就是前者有返回值后者没有。 当将一个Callable的对象传递给ExecutorService的submit方法则该call方法自动在一个线程上执行并且会返回执行结果Future对象。 同样将Runnable的对象传递给ExecutorService的submit方法则该run方法自动在一个线程上执行并且会返回执行结果Future对象但是在该Future对象上调用get方法将返回null. package com.asiainfo.proxydemo;import java.util.ArrayList; import java.util.List; import java.util.concurrent.*;public class ThreadCallableDemo2 {public static void main(String[] args) {ExecutorService executorService Executors.newCachedThreadPool();ListFutureString resultList new ArrayListFutureString();// 创建10个任务并执行for (int i 0; i 10; i) {// 使用ExecutorService执行Callable类型的任务并将结果保存在future变量中FutureString future executorService.submit(new TaskWithResult(i));// 将任务执行结果存储到List中resultList.add(future);}// 遍历任务的结果for (FutureString fs : resultList) {try {System.out.println(fs.get()); // 打印各个线程任务执行的结果} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();} finally {// 启动一次顺序关闭执行以前提交的任务但不接受新任务。如果已经关闭则调用没有其他作用。executorService.shutdown();}}} }class TaskWithResult implements CallableString {private int id;public TaskWithResult(int id) {this.id id;}public String call() throws Exception {System.out.println(call()方法被自动调用,干活 Thread.currentThread().getName());// 一个模拟耗时的操作for (int i 999999; i 0; i--);return call()方法被自动调用任务的结果是 id Thread.currentThread().getName();} } 参考https://blog.csdn.net/w2393040183/article/details/52177572 http://murielily.blog.163.com/blog/static/134260649201131215237637/
http://www.zqtcl.cn/news/756591/

相关文章:

  • 注册域名哪个网站好信息技术制作网站首页
  • 企业网站app制作价格国外外链平台
  • 泉州市网站设计企业网络有限公司经营范围
  • 电子商务网站创业计划书后台管理系统登录
  • 蚂蚁建站网页传奇游戏单职业
  • 标准通网站建设广州 flash 网站
  • 怎么做游戏自动充值的网站淘宝购物平台
  • 免费帮助建站营销策略怎么写
  • 12380 举报网站建设优秀个人网站
  • 简洁网站模板素材用wordpress上传源砖
  • 高密做网站电影html网页模板设计素材
  • 湖北网络营销网站襄阳网站建设-飞鱼网络
  • 想更新公司网站怎么做关于网站开发的自我评价
  • 找建筑工作哪个网站好新增网站 备案
  • 格力网站的建设情况wordpress mysql 密码重置
  • 网站access数据怎么做高端品牌网站建设的目的
  • 外贸买家网站凯里网站建设流程
  • 网站一年要多少钱国外的建筑设计网站
  • 手游发号网站模板ic外贸网站建设
  • 珠海网站制作案例tp5 商城网站开发
  • 母婴用品网站建设规划上海市建设工程 安全协会网站
  • 做室内设计特别好的网站网站服务器租用恒创
  • 慕课网站开发文档wordpress上传到空间
  • 行业垂直网站开发漳州最便宜的网站建设价格
  • 高级网站设计效果图网站设计制作哪些
  • 惠山区住房和建设厅网站营销推广方式都有哪些
  • 做网贷网站多少钱wordpress首页短代码
  • 网站网格湖南网页
  • 做网站的知名品牌公司用ps切片做网站
  • 中学网站模板下载番禺外贸网站建设