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

南宁市优化网站wordpress 应用cms

南宁市优化网站,wordpress 应用cms,广州培训+网站开发,网站建设硬件环境Sun在Java5中#xff0c;对 Java线程的类库做了大量的扩展#xff0c;其中线程池就是Java5的新特征之一#xff0c;除了线程池之外#xff0c;还有很多多线程相关的内容#xff0c;为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序#xff0c;线程部分的…Sun在Java5中对 Java线程的类库做了大量的扩展其中线程池就是Java5的新特征之一除了线程池之外还有很多多线程相关的内容为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序线程部分的新增内容显得尤为重要。有关Java5线程新特征的内容全部在java.util.concurrent下面里面包含数目众多的接口和类熟悉这部分API特征是一项艰难的学习过程。目前有关这方面的资料和书籍都少之又少大所属介绍线程方面书籍还停留在java5之前的知识层面上。当然新特征对做多线程程序没有必须的关系在java5之前通用可以写出很优秀的多线程程序。只是代价不一样而已。 线程池的基本思想还是一种对象池的思想开辟一块内存空间里面存放了众多(未死亡)的线程池中线程执行调度由池管理器来处理。当有线程任务时从池中取一个执行完成后线程对象归池这样可以避免反复创建线程对象所带来的性能开销节省了系统的资源。在Java5之前要实现一个线程池是相当有难度的现在Java5为我们做好了一切我们只需要按照提供的API来使用即可享受线程池带来的极大便利。 Java5的线程池分好多种具体的可以分为两类固定尺寸的线程池、可变尺寸连接池。 在使用线程池之前必须知道如何去创建一个线程池在Java5中需要了解的是java.util.concurrent.Executors类的API这个类提供大量创建连接池的静态方法是必须掌握的。一、固定大小的线程池newFixedThreadPool [java] view plaincopy package app.executors;    import java.util.concurrent.Executors;  import java.util.concurrent.ExecutorService;    /**  * Java线程线程池  *   * author 冯小卫  */  public class Test {      public static void main(String[] args) {          // 创建一个可重用固定线程数的线程池          ExecutorService pool  Executors.newFixedThreadPool(5);          // 创建线程          Thread t1  new MyThread();          Thread t2  new MyThread();          Thread t3  new MyThread();          Thread t4  new MyThread();          Thread t5  new MyThread();          // 将线程放入池中进行执行          pool.execute(t1);          pool.execute(t2);          pool.execute(t3);          pool.execute(t4);          pool.execute(t5);          // 关闭线程池          pool.shutdown();      }  }    class MyThread extends Thread {      Override      public void run() {          System.out.println(Thread.currentThread().getName()  正在执行。。。);      }  }   输出结果 [html] view plaincopy pool-1-thread-1正在执行。。。  pool-1-thread-3正在执行。。。  pool-1-thread-4正在执行。。。  pool-1-thread-2正在执行。。。  pool-1-thread-5正在执行。。。   改变ExecutorService pool Executors.newFixedThreadPool(5)中的参数ExecutorService pool Executors.newFixedThreadPool(2)输出结果是 [html] view plaincopy pool-1-thread-1正在执行。。。  pool-1-thread-1正在执行。。。  pool-1-thread-2正在执行。。。  pool-1-thread-1正在执行。。。  pool-1-thread-2正在执行。。。   从以上结果可以看出newFixedThreadPool的参数指定了可以运行的线程的最大数目超过这个数目的线程加进去以后不会运行。其次加入线程池的线程属于托管状态线程的运行不受加入顺序的影响。 二、单任务线程池newSingleThreadExecutor 仅仅是把上述代码中的ExecutorService pool Executors.newFixedThreadPool(2)改为ExecutorService pool Executors.newSingleThreadExecutor(); 输出结果 [html] view plaincopy pool-1-thread-1正在执行。。。  pool-1-thread-1正在执行。。。  pool-1-thread-1正在执行。。。  pool-1-thread-1正在执行。。。  pool-1-thread-1正在执行。。。   可以看出每次调用execute方法其实最后都是调用了thread-1的run方法。 三、可变尺寸的线程池newCachedThreadPool 与上面的类似只是改动下pool的创建方式ExecutorService pool Executors.newCachedThreadPool(); 输出 [html] view plaincopy pool-1-thread-1正在执行。。。  pool-1-thread-2正在执行。。。  pool-1-thread-4正在执行。。。  pool-1-thread-3正在执行。。。  pool-1-thread-5正在执行。。。   这种方式的特点是可根据需要创建新线程的线程池但是在以前构造的线程可用时将重用它们。 四、延迟连接池newScheduledThreadPool [java] view plaincopy package app.executors;    import java.util.concurrent.Executors;  import java.util.concurrent.ScheduledExecutorService;  import java.util.concurrent.TimeUnit;    /**  * Java线程线程池  *   * author 冯小卫  */  public class Test {      public static void main(String[] args) {          // 创建一个线程池它可安排在给定延迟后运行命令或者定期地执行。          ScheduledExecutorService pool  Executors.newScheduledThreadPool(2);          // 创建实现了Runnable接口对象Thread对象当然也实现了Runnable接口          Thread t1  new MyThread();          Thread t2  new MyThread();          Thread t3  new MyThread();          // 将线程放入池中进行执行          pool.execute(t1);          // 使用延迟执行风格的方法          pool.schedule(t2, 1000, TimeUnit.MILLISECONDS);          pool.schedule(t3, 10, TimeUnit.MILLISECONDS);            // 关闭线程池          pool.shutdown();      }  }    class MyThread extends Thread {      Override      public void run() {          System.out.println(Thread.currentThread().getName()  正在执行。。。);      }  }   读者可以尝试改变Executors.newScheduledThreadPool(2)的参数来得到更多的体验当然让 [java] view plaincopy Override  public void run() {      System.out.println(Thread.currentThread().getName()  正在执行。。。);  }   变成一个无限循环你可以得到更多的关于pool.shutdown()的用法。 五单任务延迟连接池(和上面类似就不写了)。当然我们也可以自定义线程池这里就不写了累啊……
http://www.pierceye.com/news/694961/

相关文章:

  • 嘉兴电子商务网站建设wordpress如何添加页面子目录
  • 教育在线网站怎样做直播seo网站推广怎样
  • 响应式的网站建设一个多少钱百度域名解析
  • 东莞做网站卓诚网络免费大数据分析网站
  • 网站用什么图片格式好seo学徒招聘
  • 地区网站建设网站用户反馈
  • 网站备案背景幕布下载成都最好的seo外包
  • 荆州 商务 网站建设郑州网站建设灵秀
  • 重庆市建筑工程信息官方网站注册号域名后如何建设公司网站
  • 江门网站建设junke100深圳小企业网站建设设计制作
  • 个人域名能做网站吗江苏外贸型网站制作
  • 文登区做网站的公司琴行网站开发学术论文
  • 嵌入式网站开发学习百度seo优化收费标准
  • 网站评价及优化分析报告湖南省邵阳建设局网站
  • 网站推广是做什么的深圳市住房建设与保障局官方网站
  • qq群推广网站lamp网站开发制作
  • ui网站界面设计广州省建设监理协会网站
  • 网站界面设计教程宁波正规网站seo公司
  • 网站建设与管理中专上海注册公司注册地址
  • 清溪网站建设怎么用wordpress打开网站
  • 网站稳定性不好的原因wordpress仿站维护
  • 银行管理系统网站建设最专业的医疗网站建设
  • 网站应该怎么做住建官网查询
  • 建设网站类型条形码生成器在线制作图片
  • 邯郸广告公司网站建设seo排名怎么做
  • 大眼睛网站建设做艺术品的网站
  • 自助免费网站建设平台网站开发php还是jsp
  • 网站建设成本多少北京怎么进行网页设计
  • 给个网站做导航违法吗游戏推广员每天做什么
  • 交互式网站开发技术全国企业信用公示信息公示网官网