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

手机端模板网站东莞市微客巴巴做网站

手机端模板网站,东莞市微客巴巴做网站,北京正规网站建设公司哪家好,企业网页建设公司哪家比较好线程池 什么是线程池#xff1f; 想象一下 假设我是个漂亮妹子#xff0c;这时候接受了舔狗A的表白#xff0c;随着时间的推移#xff0c;逐渐不喜欢A这小子了#xff0c;于是我就想换个男朋友#xff0c;可是 1.处理分手#xff0c;需要消耗一定成本 2.再找一个新对象…线程池 什么是线程池 想象一下 假设我是个漂亮妹子这时候接受了舔狗A的表白随着时间的推移逐渐不喜欢A这小子了于是我就想换个男朋友可是 1.处理分手需要消耗一定成本 2.再找一个新对象开始培养感情也要消耗成本和时间 于是这样来算的话时间开销就比较长效率比较低 如何提高效率呢我们不妨换一种方式 我可以在跟A这小子交往的过程中提前和B搞暧昧提前就把感情培养好了这个时候只需要消耗跟A分手的成本分手之后B立刻就上位了这样效率大幅度提高了 当我跟B好上之后我可能犯贱又想前任A了但是我还想跟别的男的聊为了更进一步的提高效率我可以跟A,C,D,E,F,G,H等多人一起暧昧于是A,C,D,E,F,G,H就都在我的备胎池中了虽然不道德但是对于更换男朋友的效率有很大的提升 同样的如果我们需要频繁的创建销毁线程此时创建和销毁的成本就不能忽视了因此就可以用线程池 我们可以提前创建好一波线程后续继续使用线程的话就直接从池子里拿一个即可当线程不再使用就放回池子里 本来是需要创建线程/销毁线程 现在就是从池子里获取现成的线程不用了就把线程放回池子中 为啥从池子里取就比从系统这里创建线程更快更高效呢 需要从用户态和内核态来分析 内核态如果是从系统这里创建线程需要调用系统api进一步的由操作系统内核完成线程的创建过程内核是给所有的进程提供服务的是不可控的没准你的进程想创建线程但是这时候内核上有好多别的进程在排队等着创建线程呢这个时候你的进程的线程的创建就得等其他创建完了速度就慢了很多效率大幅度降低了 用户态如果是从线程池这里获取线程上述内核中进行的操作都提前做好了现在想要一个线程直接就从线程池里面去取这个是可控的 就比如你去办理业务这时候银行柜员就是内核 你可以有两个选择 1.去自助业务机器自己办理可控快 2.等着柜员给你办理 可是你如果要让柜员给你办理的话你前面可能还有很多人在排队 你要是去自助业务机的话就相当于好多柜员一起给你办理因为机器的速度远远高于人的速度就相当于把好几个柜员放到机器里你可以认为机器就是柜员池然后你直接从里面获取你想要的业务即可 在java中也提供了现成的线程池 提到了 工厂两个字这就想到了一种新模式–工厂模式 在校招中最常见的就是单例模式和工厂模式 工厂字面意思就是生产—生产对象 一般创建对象都是通过new通过构造方法但是构造方法存在很大缺陷此时就可以使用工厂模式来解决上述问题了 这种缺陷在于构造方法的名字就是固定的类名有的类需要很多种不同的构造方式但是构造方法名字又固定就只能使用方法重载来实现了但是 方法重载也有缺陷 比如 一个坐标系可以分为xy坐标和极坐标表示形式都是double类型的就会出错 使用工厂模式就可以解决上述问题不使用构造方法了使用普通的方法来构造对象这样的方法名字可以是任意的了普通方法内部再来new一个对象由于普通方法的目的是为了创建出对象来这样的方法一般得是静态的 这种模式就叫工厂模式工厂模式是为了弥补语法的缺陷 既然是工厂模式肯定不可能只有一种创建线程池的方式 面试题 谈谈java标准库里的线程池构造方法的参数和含义 除了上述提供的线程池创建方法标准库还提供了一种更丰富的线程池类也就是ThreadPoolExecutor这个类有很多可以供我们调整的选项更好的满足我们的实际需求 可以看到这个类有很多的构造方法最后一个构造方法的参数是最多的也就是把最下边的搞懂其他就都搞懂了 既能保证繁忙的时候创建出多个临时线程来高效的处理任务又能保证空闲的时候销毁多余的线程保证不会浪费资源 自己如何去实现一个线程池也是面试题 //自己实现线程池 class MyThreadPool {private BlockingDequeRunnable queuenew LinkedBlockingDeque();public void submit(Runnable runnable) throws InterruptedException{queue.put(runnable);}public MyThreadPool(int n){for(int i1;in;i){Thread tnew Thread(()-{while(true){try {Runnable runnablequeue.take();runnable.run();} catch (InterruptedException e) {throw new RuntimeException(e);}}});t.start();}} } public class Demo24 {public static void main(String[] args) throws InterruptedException {MyThreadPool poolnew MyThreadPool(4);for(int i0;i1000;i){pool.submit(new Runnable() {Overridepublic void run(){System.out.println(Thread.currentThread().getName()在执行);//哪个线程正在执行获得这个线程的名字}});}} }
http://www.dnsts.com.cn/news/168147.html

相关文章:

  • 做网站没有数据库建设网站的不足
  • 网站上传到空间代运营是如何骗人的
  • 那个网站做国外售货wordpress模块架构
  • 南宁市建设处网站建筑公司经营范围大全
  • 专业建站推广企业seo优化服务是什么意思
  • 网站跟自媒体建设广州白云网站建设
  • 做3d效果图的网站有哪些同行做的好的网站
  • 寓意好有内涵的公司名字贺州seo
  • 网站模板的好处中国商标注册查询官网
  • 网站模板加后台制作app开发的公司
  • vfp网站开发网站开发外包价格
  • 做个网站需要什么设备广西临桂建设局网站
  • 鄞州区卖场设计网站建设深圳做小程序的公司排名
  • 赣州人才网站怎么建医疗网站
  • php前台网站开发自己做的网站能放到网上么
  • 进贤网站建设网站备案的影响
  • 惠城东莞网站建设wordpress添加自定义字段
  • 网站信息资源建设包括哪些网站建设 费用预算
  • 南宁网站排名外包wordpress 导航样式
  • 网站教程设计重庆市建设工程信息网络
  • 网站建设与推广实训总结杭州外贸公司
  • 网站开发多线程开发北京王府井美食
  • 如何免费创建网站平台网站logo图怎么做的
  • 物流行业网站建设福田瑞沃小金刚
  • 网站建设方案预计效果做网页要钱吗
  • 企业邮箱 网站建设wordpress 自定义变量
  • 上海网页建站软装公司网站建设
  • 一站式做网站报价专门做推广的网站
  • 南昌做网站的外贸企业商城网站建设
  • 做网站保定上海优化网站seo公司