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

wordpress 首页模板资源优化排名网站

wordpress 首页模板,资源优化排名网站,wordpress优秀主题,网站建设制作设计营销公司杭州线程池 什么是线程池? 想象一下 假设我是个漂亮妹子,这时候接受了舔狗A的表白,随着时间的推移,逐渐不喜欢A这小子了,于是我就想换个男朋友,可是 1.处理分手,需要消耗一定成本 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,通过构造方法,但是构造方法存在很大缺陷,此时就可以使用工厂模式来解决上述问题了
这种缺陷在于构造方法的名字就是固定的类名,有的类需要很多种不同的构造方式,但是构造方法名字又固定,就只能使用方法重载来实现了,但是!
方法重载也有缺陷
比如
一个坐标系可以分为x,y坐标和极坐标表示形式,都是double类型的,就会出错
在这里插入图片描述
使用工厂模式就可以解决上述问题,不使用构造方法了,使用普通的方法来构造对象,这样的方法名字可以是任意的了,普通方法内部再来new一个对象,由于普通方法的目的是为了创建出对象来,这样的方法一般得是静态的
在这里插入图片描述
这种模式就叫工厂模式,工厂模式是为了弥补语法的缺陷
既然是工厂模式,肯定不可能只有一种创建线程池的方式
在这里插入图片描述

面试题

谈谈java标准库里的线程池构造方法的参数和含义

除了上述提供的线程池创建方法,标准库还提供了一种更丰富的线程池类,也就是ThreadPoolExecutor,这个类有很多可以供我们调整的选项,更好的满足我们的实际需求
在这里插入图片描述
可以看到这个类有很多的构造方法,最后一个构造方法的参数是最多的,也就是把最下边的搞懂,其他就都搞懂了
在这里插入图片描述
既能保证繁忙的时候,创建出多个临时线程来高效的处理任务,又能保证空闲的时候销毁多余的线程,保证不会浪费资源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自己如何去实现一个线程池(也是面试题)

//自己实现线程池
class MyThreadPool
{private BlockingDeque<Runnable> queue=new LinkedBlockingDeque<>();public void submit(Runnable runnable) throws InterruptedException{queue.put(runnable);}public MyThreadPool(int n){for(int i=1;i<=n;i++){Thread t=new Thread(()->{while(true){try {Runnable runnable=queue.take();runnable.run();} catch (InterruptedException e) {throw new RuntimeException(e);}}});t.start();}}
}
public class Demo24
{public static void main(String[] args) throws InterruptedException {MyThreadPool pool=new MyThreadPool(4);for(int i=0;i<1000;i++){pool.submit(new Runnable() {@Overridepublic void run(){System.out.println(Thread.currentThread().getName()+"在执行");//哪个线程正在执行,获得这个线程的名字}});}}
}

在这里插入图片描述
在这里插入图片描述

http://www.zhongyajixie.com/news/35369.html

相关文章:

  • 做网站要的带宽是什么广州网页搜索排名提升
  • 手机网站免费建设扬州百度seo公司
  • ngrok做网站服务器百度怎么发广告
  • 品牌网站建设公司陕西seo排名
  • 深圳疫情最新情况龙华区什么是seo搜索优化
  • 武汉网站制作公司选华企加速器北京网站托管
  • 软件定制开发如何做优化seo方案
  • 网站建设客网站免费网络推广工具
  • 网站前端制作费用百度一下你就知道123
  • 个人网站 可以自己做服务器合肥网站优化公司
  • 赣州 做网站360建站系统
  • 哪里有好的免费的网站建设谷歌浏览器 安卓下载
  • 网站建设公司违法成都网站seo技术
  • 网站建设制作需要多少钱网络营销与电子商务的区别
  • 做视频网站怎么挣钱吗注册域名后如何建立网站
  • 南阳专业做网站无锡seo公司哪家好
  • 怎样查询网站建设时间100个电商平台
  • java兼职网站开发大数据营销推广精准粉
  • 夜月直播下载直播潍坊seo推广
  • 珠海企业医疗网站建设免费数据查询网站
  • 危险网站怎么办给企业做网站的公司
  • 企业年报系统登录津seo快速排名
  • 促销策划seopc流量排名官网
  • 石家庄网站开发报价新产品市场推广方案
  • 湘潭响塘乡建设局网站天津网站推广
  • 动态交互网站建设网站怎么做出来的
  • 布吉网站建设搜索引擎优化的主要内容
  • 自己域名做网站搜索引擎优化指南
  • 建网站的公司起什么名好他达拉非功效与作用主要会有哪些
  • 做网站赚多少百度一下 你就知道官网 新闻