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

长春模板建站系统南昌互联网网站开发

长春模板建站系统,南昌互联网网站开发,dw做网站地图,流媒体网站开发教程线程池 什么是线程池#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.hkea.cn/news/14583090/

相关文章:

  • 青海餐饮网站建设公司开发新客户的十大渠道
  • 中国做的电脑系统下载网站高端网站建设公司价格
  • 免费做网站模板在哪里做株洲网站建设 磐石网络
  • 建材网站制作wordpress 文章主题图
  • 便宜网站建设公司汉邦未来网站开发
  • 厦门专业网站建设团队做家旅游的视频网站好
  • 网站挂到国外服务器wordpress 电商 插件
  • 怎么上国外网站建设公司哪家好
  • 天津建设工程信息网评标专家百度做网站优化多少钱一年
  • php 手机网站 模板手机网站开发session
  • 网站建设的说明免费推广网站排行榜
  • 如何利用路由建设网站搭建网站需要钱吗
  • 有关网站建设的app免费素材网视频
  • 国外营销网站建设富阳市网站
  • dede做的网站弹广告深圳网址网站建设公司
  • 建筑涂料网站设计中国建设网官方网站平台
  • 建行网站注册用户名怎么填制作网页背景如何铺满
  • 网站开发前端跟后端的区别品牌设计概念
  • 做网站自己有模板要花多少钱合肥网络公司 网站建设
  • 建站软件2017win7系统可以做网站吗
  • wordpress腾讯云搭建网站seo发外链工具
  • 建设php网站导航滑动整屏网站
  • 宝安最好的网站建设下载企业网站
  • 企业网站托管趋势在哪些网站上申请做广告可以在百度引擎能收到关键字
  • 搭建本地网站做色流文字游戏做的最好的网站
  • 中国站长工具郑州企业健康码二维码怎么弄就是放在门口让人扫
  • 电子商务官方网站北京建设部网站
  • 做网站需要的东西抖音搜索关键词排名查询
  • win8 metro风格网站后台管理模板ppt模板图片素材
  • 网站建设的费用天水市建设局企业注册网站