在java中多线程并不陌生,在一定的范围内,多线程数量的增加会明显提升整个系统的吞吐性能,但是线程本身会极大的耗费内存空间,线程的频繁创建和回收也极其占用CPU资源,多线程甚至会拖垮整个服务!
所以,线程的利用必须掌握在一个度,太少的线程数可能会浪费CPU资源,而太高也极有可能反而降低整个应用性能;
线程池:基于使用多线程存在的问题,JDK提出了线程池技术,类似于数据库连接池,都是保持池中部分线程活跃状态,在需要使用线程的时候,直接从线程池中获取,使用。当线程使用结束,就进行回收(直接放回池中等待,而不是GC),这样就能避免了线程的频繁创建和回收。
JAVA中的线程池:JDK提供了线程池框架Executor,帮助程序更好的管理线程。总的结构如下截图:
比较常见的线程池对象获取方式为:
①newSingleThreadExecutor():返回单线程的线程池,一个接一个的处理任务,线程异常的时候,会创建新的线程替代; ②newFixedThreadPool:在达到最大线程之前,有一个任务就创建一个线程,直到达到最大线程数量; ③newCachedThreadPool:动态的设置最合适的线程数量,最大为JVM能够支持的大小; ④newScheduledThreadPool:指定线程数量,并周期性的执行任务; ⑤newSingleThreadScheduledExecutor:指定线程数量1个,并周期性的执行任务;
从源码来看,上面几种线程池底层都是封装的ThreadPoolExecutor对象,查看源码可知比较重要的属性(对象)截图如下:
下图是ThreadPoolExecutor对象中的execute方法截图:
解释如下:
1,当前线程总数小于核心线程数,则通过addWorker进行执行;
2,否则通过wordQueue.offer提交到等待队列,
3,进入等待队列失败,则通过addWorker提交到线程池,失败则执行拒绝策略;
线程池有多种拒绝策略:直接抛出异常,或者丢弃无法处理的任务等等,此处不做详细讨论。。
线程池的扩展:JDK允许开发人员自主扩展线程池,通过提供的beforeExecute,afterExecute,terminated三个接口可以像处理AOP一样方便的管理线程池,可自行实现状态跟踪,调试信息等用以监控线程池!
线程池的优化:线程池的优化主要针对线程数量进行,一般来说只要使用的不是最大最小线程数量都可以,但是具体的还要根据场景,参考CPU核心数,等待时间等因素来判断最合适的线程数,比如是批量运算这种密集的CPU执行,则线程数设置为CPU核心数即可,如果有大量阻塞,则可以使用CPU核心数的偶数倍数,在有一本书中得出了一个公式如下截图:
jdk中的线程池技术比较完善,加上其他的多线程技术,促使JAVA成为高并发领域的佼佼者,最近一直在分享JAVA技术,得到很多朋友的鼓励,在此表示感谢,我也会一直持续的进行分享,敬请关注。。
线程池创建和销毁是有代价的,所以可以通过提前创建线程池来缓解这个问题。但是创建多少个是个问题?
一般根据业务复杂度,比如提前创建100个,然后设置一个低水位和高水位,比如20% 和80%,当达到低水位且持续一段时间,就可以释放一部分。当高水位一段时间后,可以动态增加一部分。同时增加手动设置的api可以根据预测提前调整。
CCV是一个基于OpenCV的开源架构,全称为Community Core Vision。它是一个跨平台的计算机视觉和机器感知解决方案,可以以视频作为输入流,从中捕捉跟踪到的触点信息,包括事件(手指下压、移动、释放等)及触点坐标,这些信息是构建一个多点触控系统所必须。在性别方面,CCV并不具备性别特征。
10万预算,踏板车载人摩旅,舒适第一,续航第二,有哪些车型推荐?
这种需求下骑士分享有三款车型推荐,它们分别是光阳AK550,三阳TL500,雅马哈X MAX300,这三款车型可以满足题主的这种需求。
光阳AK550 平均售价
AK500是一款偏向于运动设定的双缸水冷大绵羊,它轴距达到了1580mm,所以在保证整车舒适性的同时还会拥有不错的乘坐空间,因此完全能够满足载人摩旅骑行的需求。
这款车所搭载的双缸水冷电喷发动机,实际排量550.4ml,最大功率39.5KW,最大扭矩54N.m,动力调校偏低转,5750rpm时就可以释放出最大扭矩,因此摩旅状态下会拥有不错的动力表现。
油耗方面,AK550巡航状态下百公里综合油耗会保持在5.5L左右,结合它15升的油箱容积,续航里程方面虽然算不上是绝对出色,但还算比较可以。
三阳TL500 平均售价 82800
TL500同样是一款偏运动性能的大绵羊,从某种意义上来说,这款车就是和光阳AK550来抢饭碗的,因为它的定价更为亲民所以很有可能会抢占不小的市场风格,也正因为如此AK550售价处于了空白(主要无法确定哪个价格是正确的)
TL500同样具备不错的舒适性和操控性,所以车型结构方面,完全能够满足题主对舒适性的要求,但在动力和续航里程方面这款车就会处于劣势,因为它的最大扭矩保持在了43N.m,而油箱容积也只有12.5L,所以实际的表现中这两个方面就会弱一些,但以价格来评判的话这款车依然值得关注。
雅马哈X MAX300 平均售价62800
MAX300同样是一款运动兼具舒适性的大踏板,这款车在车身结构方面相对会紧凑一点,但即便如此它依然具备不错的舒适性,并且因为它采用了轻量化的设计,在操控上会有比较优秀的一面。
动力方面,MAX300在发动机结构上会逊色于另外两款车型,因为它搭载了一款单缸四气门电喷水冷发动机,但就性能表现而言这款车依然比较抢眼,它最大功率20.6KW,最大扭矩29N.m,动力调校偏低转,拥有不错扭力的同时提速也会非常流畅,据悉百公里加速会保持在十秒。
最主要这款发动机的油耗可以刷新你我对踏板车的认知,根据车友测试,它的百公里综合油耗会保持在3L,结合它13L的油箱容积,那么续航里程可以达到400km,以这个数据来看,续航方面它将是以上三款车型中最出色的。
以上三款车型就是这种需求下的推荐,至于选择哪一款还要取决于个人的需求,但骑士分享还是比较看好雅马哈X MAX300,虽然它的动力不是三款车型中最强的,但就实际的性能表现而言它完全符合个人的需求,尤其是油耗的表现和一些配置,是骑士分享所看好的,所以对于动力要求不是非常激进的话,它可以作为三款车型中的首选,当然这只是建议。
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |