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

h5网站建设图标灵当crm客户管理系统

h5网站建设图标,灵当crm客户管理系统,织梦手机网站怎么安装教程视频,南京网络推广平台1、继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式#xff0c;但Thread本质上也是实现了Runnable接口的一个实例#xff0c;它代表一个线程的实例#xff0c;并且#xff0c;启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法… 1、继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式但Thread本质上也是实现了Runnable接口的一个实例它代表一个线程的实例并且启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法它将启动一个新线程并执行run()方法。这种方式实现多线程很简单通过自己的类直接extend Thread并复写run()方法就可以启动新线程并执行自己定义的run()方法。例如   public class MyThread extends Thread { public void run() { System.out.println(MyThread.run()); } }   在合适的地方启动线程如下 MyThread myThread1 new MyThread(); MyThread myThread2 new MyThread(); myThread1.start(); myThread2.start(); 2、实现Runnable接口方式实现多线程 如果自己的类已经extends另一个类就无法直接extends Thread此时必须实现一个Runnable接口如下 public class MyThread extends OtherClass implements Runnable { public void run() { System.out.println(MyThread.run()); } } 为了启动MyThread需要首先实例化一个Thread并传入自己的MyThread实例 MyThread myThread new MyThread(); Thread thread new Thread(myThread); thread.start(); 事实上当传入一个Runnable target参数给Thread后Thread的run()方法就会调用target.run()参考JDK源代码 public void run() { if (target ! null) { target.run(); } }   3、使用ExecutorService、Callable、Future实现有返回结果的多线程 ExecutorService、Callable、Future这个对象实际上都是属于Executor框架中的功能类。想要详细了解Executor框架的可以访问http://www.javaeye.com/topic/366591 这里面对该框架做了很详细的解释。返回结果的线程是在JDK1.5中引入的新特征确实很实用有了这种特征我就不需要再为了得到返回值而大费周折了而且即便实现了也可能漏洞百出。 可返回值的任务必须实现Callable接口类似的无返回值的任务必须Runnable接口。执行Callable任务后可以获取一个Future的对象在该对象上调用get就可以获取到Callable任务返回的Object了再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了。下面提供了一个完整的有返回结果的多线程测试例子在JDK1.5下验证过没问题可以直接使用。代码如下 package MavenTest.maven_demo_web;import java.util.concurrent.*;import java.util.Date;import java.util.List;import java.util.ArrayList;/*** 有返回值的线程*/public class Test {public static void main(String[] args) throws ExecutionException,    InterruptedException {   System.out.println(----程序开始运行----);   Date date1 new Date();   int taskSize 5;//同时开启的线程数量   // 创建一个线程池   ExecutorService pool Executors.newFixedThreadPool(taskSize);   // 创建多个有返回值的任务   ListFutureObject list new ArrayListFutureObject();   ListMyCallable listCallable new ArrayListMyCallable();   for (int i 0; i 10; i) {     MyCallable callableTask new MyCallable(i );    listCallable.add(callableTask);   }// 执行任务并获取Future对象   list pool.invokeAll(listCallable);   // 关闭线程池   pool.shutdown();   // 获取所有并发任务的运行结果   for (Future f : list) {    // 从Future对象上获取任务的返回值并输出到控制台    System.out.println( f.get().toString());   }   Date date2 new Date();   System.out.println(----程序结束运行----程序运行时间【     (date2.getTime() - date1.getTime()) 毫秒】);}}class MyCallable implements CallableObject {private String taskNum;MyCallable(String taskNum) {   this.taskNum taskNum;}public Object call() throws Exception {   System.out.println( taskNum 任务启动);   Date dateTmp1 new Date();   Thread.sleep(1000);   Date dateTmp2 new Date();   long time dateTmp2.getTime() - dateTmp1.getTime();   System.out.println( taskNum 任务终止);   return taskNum 任务返回运行结果,当前任务时间【 time 毫秒】;}} 代码说明 上述代码中Executors类提供了一系列工厂方法用于创先线程池返回的线程池都实现了ExecutorService接口。 public static ExecutorService newFixedThreadPool(int nThreads) 创建固定数目线程的线程池。 public static ExecutorService newCachedThreadPool() 创建一个可缓存的线程池调用execute 将重用以前构造的线程如果线程可用。如果现有线程没有可用的则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。 public static ExecutorService newSingleThreadExecutor() 创建一个单线程化的Executor。 public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) 创建一个支持定时及周期性的任务执行的线程池多数情况下可用来替代Timer类。 ExecutoreService提供了submit()方法传递一个Callable或Runnable返回Future。如果Executor后台线程池还没有完成Callable的计算这调用返回Future对象的get()方法会阻塞直到计算完成。 转载于http://www.cnblogs.com/yezhenhan/archive/2012/01/09/2317636.html   转载于:https://www.cnblogs.com/zy-jiayou/p/7249858.html
http://www.huolong8.cn/news/79759/

相关文章:

  • iis访问网站打开要很久松溪网站建设wzjseo
  • 个人网站 摄影展示阿里巴巴国际网站官网
  • 如何做好网站推广百度pc网页版
  • 做网站一般注册商标哪个类微信api接口
  • 新公司网站建设分录旅游网网站建设的管理
  • 网站公司哪家好宁阳县住房和城乡建设局网站
  • 购买设备有什么网站做参考做网站入什么科目
  • 网站开发学什么比较有优势特色的武进网站建设
  • 怎么给网站做关键词搜索雄安网站建设需要多少钱
  • 国外响应式网站模板烟台网站排名优化报价
  • 外贸在哪个网站做新媒体运营需要学什么
  • 一流的锦州网站建设百度搜索不到我的网站
  • 公司网站建设模板班级网站模板
  • asp外贸网站建设招聘长沙 网站建设公司
  • 广告设计网站免费我的个人网站 的网页设计
  • vs2105制作个人网站肇东网页设计
  • 跨境电商网站建设成本爱客装修官网
  • 杭州会做网站在线logo制作免费
  • 手机网站建设价格表ftp链接网站空间
  • 泰安企业做网站wordpress api 自定义认证
  • 网站开发快速盈利汽车网页设计图片
  • 国际大型门户网站做网站推广一年多少钱
  • 安庆城乡建设局网站网站优化费用报价明细
  • 免费建设网站领地开发定制电商平台
  • 百度网站主要提供的服务建筑工程网格化区域划片管理制度
  • 什么网站做唱歌主播石狮网站建设费用
  • 品牌网站建设黑白I狼J小江高端企业网站建设
  • 手机网站建设视频教程_wordpress设计师主题
  • 咋样做网站开发企业app公司
  • 网站开发php程序员清远专业网站建设