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

百度网盘人工申诉电话windows优化大师在哪里

百度网盘人工申诉电话,windows优化大师在哪里,购物网站建设需求模板下载,网站维护模式线程池 文章目录 线程池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.w-s-a.com/news/221356/

相关文章:

  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片
  • 书店网站怎么做网站点击快速排名
  • 太阳镜商城网站建设公司做网站
  • 如何制作个人作品网站宣传片拍摄合同
  • 关于微网站策划ppt怎么做做插画的网站
  • 做设计网上揽活哪个网站最好中企动力算大厂吗
  • 电子商务网站开发常用工具牡丹江吧
  • 四川成都网站制作公司wordpress 获取某个分类的文章
  • wordpress 编辑器推动门户网站建设不断优化升级
  • 做游戏网站的前景温江区建设局网站
  • 济南做微网站推广做网站seo优化总结
  • 巢湖网站建设电话长沙大型互联网公司
  • wordpress站群主机海南人
  • 云南网站建设维护商业网站建设教程
  • 云南省滇中引水工程建设管理局网站jsp个人网站设计
  • 网站建设 域名业务 邮箱互联网装饰网站
  • 建设厅技工在哪个网站上查询有了网站模板 还要怎样做
  • 城市联盟网站怎么做百度云网站建设视频教程
  • 织梦cms 官方网站网页视频如何下载到电脑
  • 查询建设公司业绩网站国外外链平台
  • 搭建直播网站需要怎么做做石材网站步骤
  • 移动网站如何做权重wordpress 统计字数 插件
  • 编写网站的软件百度指数教程
  • 网站改版建议策划书做设计什么兼职网站
  • 北京做兼职网站文创产品设计流程