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

能上国外网站的dns电脑优化大师

能上国外网站的dns,电脑优化大师,安装wordpress时出现空白,类似百科式的网站建设线程池 文章目录 线程池1.什么是线程池2.为什么要用线程池3.怎么使用线程池4.工厂模式5.自己实现一个线程池6.创建系统自带的线程池6.1 拒绝策略6.2 线程池的工作流程 1.什么是线程池 字面意思#xff0c;一次创建多个线程#xff0c;放在一个池子(集合类)#xff0c;用的时…线程池 文章目录 线程池1.什么是线程池2.为什么要用线程池3.怎么使用线程池4.工厂模式5.自己实现一个线程池6.创建系统自带的线程池6.1 拒绝策略6.2 线程池的工作流程 1.什么是线程池 字面意思一次创建多个线程放在一个池子(集合类)用的时候拿一个用完了之后就放回这个池子就可以了。 2.为什么要用线程池 首先使用多线程编程就是为了提高效率势必会创建很多线程创建的过程是JVM通过调用系统API来申请系统的过程虽然说创建线程的开销要比创建进程的开销要小的多但是也架不住特别频繁的创建和销毁而池化技术就可以减少线程的频繁创建与销毁从而提高程序性能JVM调用系统API就意味着从用户态到内核态去执行而一个系统只有一个内核态这个内核需要处理很多的事情所有的进程都是要兼顾到的 因此使用线程池的最主要的目的是为了提高效率尽量减少从用户态到内核态的切换 3.怎么使用线程池 JDK中提供了一组不同的线程池的实例 public class Demo01 {public static void main(String[] args) {// 1. 用来处理大量短时间工作任务的线程池,如果池中没有可用的线程将创建新的线程如果线程空闲60秒将收回并移出缓存ExecutorService cachedThreadPool Executors.newCachedThreadPool();// 2. 创建一个操作无界队列且固定大小线程池ExecutorService fixedThreadPool Executors.newFixedThreadPool(3);// 3. 创建一个操作无界队列且只有一个工作线程的线程池ExecutorService singleThreadExecutor Executors.newSingleThreadExecutor();// 4. 创建一个单线程执行器可以在给定时间后执行或定期执行。ScheduledExecutorService singleThreadScheduledExecutor Executors.newSingleThreadScheduledExecutor();// 5. 创建一个指定大小的线程池可以在给定时间后执行或定期执行。ScheduledExecutorService scheduledThreadPool Executors.newScheduledThreadPool(3);// 6. 创建一个指定大小不传入参数为当前机器CPU核心数的线程池并行地处理任务不保证处理顺序Executors.newWorkStealingPool();} }以上方法都是用来获取线程池对象的通过不同的工厂方法获取不同功能的线程池。 4.工厂模式 工厂模式Factory Pattern是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式它提供了一种创建对象的最佳方式。 为什么要使用工厂模式 这里我们用一个简单的例子来说明原因 public class Factory {public static void main(String[] args) {Student student Student.createByAgeAndName(20, 张三);System.out.println(student);} } class Student{private int id;private int age;private String name;public int getId() {return id;}public void setId(int id) {this.id id;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public Student() {}public Student(int id, String name) { this.id id;this.name name;}public Student(int age, String name) {this.age age;this.name name;}}观察上述代码观察一下有什么问题当我们想通过id或者age来创建一个学生类时利用构造方法来创建时出现了Student(int, String) is already defined in... 这里的语法不符合Java语法中重载的语法规则,因此我们使用工厂模式可以解决这类问题。 public class Factory {} class Student{private int id;private int age;private String name;public int getId() {return id;}public void setId(int id) {this.id id;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public Student() {}// 通过方法名的区分来分别实现不同的创建对象的方法public static Student createByIdAndName(int id,String name){Student studentnew Student();student.setId(id);student.setName(name);return student;}public static Student createByAgeAndName(int age,String name){Student studentnew Student();student.setAge(age);student.setName(name);return student;}}对于工厂模式可以参考以下教程 工厂模式 5.自己实现一个线程池 实现步骤 管理任务的一个队列可以用阻塞队列去实现使用阻塞队列的好处是当线程去取任务时如果队列为空那么就阻塞等待不会造成过多的CPU资源消耗提供一个往队列中添加任务的方法创建多个线程扫描这个队列如果有任务就拿出来执行 public class MyThreadPool{//定义一个阻塞队列来管理任务BlockingQueueRunnablequeuenew LinkedBlockingQueue();/*** 提供一个往队列中添加任务的方法* param runnable* throws InterruptedException*/public void submit(Runnable runnable) throws InterruptedException {queue.put(runnable);}/*** 提供一个指定了创建线程数的构造方法* param num*/public MyThreadPool(int num){if(num0){throw new RuntimeException(线程数必须大于0);}// 创建线程for (int i 0; i num; i) {Thread thread new Thread(() - {while (true){try {Runnable runnablequeue.take();runnable.run();} catch (InterruptedException e) {e.printStackTrace();}}});//启动线程thread.start();}} }6.创建系统自带的线程池 在开发过程中一般使用ThreadPoolExecutor这个类来创建线程池以下为每个参数的代表意义 代码实现 public class Demo {public static void main(String[] args) {ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(3,//核心线程数10,//最大线程数1,//临时线程的存活时间TimeUnit.SECONDS,//临时线程的存活时间单位new LinkedBlockingQueue(20),//阻塞队列的类型和大小);for (int i 0; i 100; i) {int taskIdi;threadPoolExecutor.submit(()-{System.out.println(执行任务 taskId,当前线程Thread.currentThread().getName());});}} }6.1 拒绝策略 6.2 线程池的工作流程 关于线程池的分享就到这里了看完留下的你们的三连吧你们的支持是我最大的动力!!!
http://www.huolong8.cn/news/293660/

相关文章:

  • typecho做网站自助建站门户网站
  • 网站域名在山东备案却在苏州济南网站优化培训
  • 哪里有放网站的免费空间个人网页制作多少钱
  • 响应式品牌网站设计深圳辰硕网站优化
  • 中山模板建站软件848给我做一下88网站
  • 有哪些做副业的网站青海省公路建设网站
  • 网站建设一对一培训网上书店网网站建设
  • 男女做暧视频网站免费24小时最新国际新闻
  • 学校网站建设的安全策略品牌设计公司排行榜
  • 网站还未被收录可以做推广吗网站设计费用多少
  • 深圳个性化网站建设公司骏域网站建设
  • 怎么查百度收录做seo需要会网站开发吗
  • 电子商务网站建设实验报告网站开发 程序开发阶段
  • 专业做写生的网站扎区门户网站建设
  • 做公司网站公司多少钱做一元购网站
  • 佛山网站建设专业的公司平面设计师招聘网
  • 设计营销型网站潢川微信网站建设
  • 天津站设计单位php网站前后台源代码
  • 天蝎网站建设商城网站建设资讯
  • 怎样建设商城网站江苏省建设工程网站
  • 惠州建设局网站首页wordpress子目录站点
  • 新世纪建设集团有限公司网站建站魔方极速网站建设
  • 网站建设面试问题个人在湖北建设厅网站申请强制注销
  • 增光路网站建设drupal wordpress性能
  • 小孩做阅读的网站有哪些seo对各类网站的作用
  • 网站设计开发人员知名高端网站设计企业
  • wordpress临时关站网站首页设计与制作
  • 重庆网站建设哪家好wordpress读取图片loading
  • 网站建设招标评分企业的网站特点
  • 网站开发实战教程佛山免费建站怎样