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

网站建设文化报价制作京东一样的网站

网站建设文化报价,制作京东一样的网站,长春建网站一般要多少钱,足球个人网站模板1.1 线程: 线程就是进程中的单个顺序控制流,也可以理解成是一条执行路径 单线程:一个进程中包含一个顺序控制流(一条执行路径) 多线程:一个进程中包含多个顺序控制流(多条执行路径&#xff0…

1.1  线程:
线程就是进程中的单个顺序控制流,也可以理解成是一条执行路径

单线程:一个进程中包含一个顺序控制流(一条执行路径)

多线程:一个进程中包含多个顺序控制流(多条执行路径)

在java语言中:
 线程A和线程B,堆内存和方法区内存共享。
 但是栈内存独立,一个线程一个栈。

假设启动10个线程,会有10个栈空间,每个栈和每个栈之间,互不干扰,各自执行各自的,这就是多线程并发。

java中之所以有多线程机制,目的就是为了提高程序的处理效率。

对于单核的CPU来说,不能够做到真正的多线程并发,但是可以做到给人一种“多线程并发”的感觉。对于单核的CPU来说,在某一个时间点上实际上只能处理一件事情,但是由于CPU的处理速度极快,多个线程之间频繁切换执行,跟人来的感觉是多个事情同时在做。

 1.2 线程的生命周期

1.3 线程池

        线程池可以看做是线程的集合。它的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后 启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕, 再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。

1.4 为什么使用线程池

        使用线程池最大的原因就是可以根据系统的需求和硬件环境灵活的控制线程的数量,且可以对所有的线程进行统一的管理和控制,从而提高系统的运行效率降低系统运行压力;当然了,使用线程池的原因不仅仅只有这些,我们可以从线程池自身的优点上来进一步了解线程池的好处。(1)线程和任务分离,提升线程的重用性。

(2)控制线程的并发数量,降低服务器压力,统一管理所有的线程。

(3)提升系统的响应速度,假如创建线程用的时间为T1,执行任务用的时间为T2,销毁线程用的时间为T3,那么使用线程就免去了T1和T3的时间。

1.5 线程池的应用场景

(1)商品秒杀
(2)云盘文件上传下载
(3)12306 网上购票系统

总之,只要是有并发的地方、任务量大或者小、每个任务执行时间长或短的都可以使用线程池,只不过在使用线程池的时候,注意下设置合理的线程池大小即可;

2.1 实现方式 (springboot实现多线程)

1. 自定义线程池配置,我自己的项目在没有充分的把握情况下一般不修改手脚架的配置,避免出现不明原因。加上我们经理之前也教我,能不修改别人的代码,尽量不修改别人的代码,因为你不确定别人是如何调用的。


/*** xxx业务专用的线程池配置类*/
@Configuration
public class TalentIotThreadConfig  {/*** ThreadPoolTaskExecutor的处理流程* 当池子大小小于corePoolSize,就新建线程,并处理请求* 当池子大小等于corePoolSize,把请求放入workQueue中,池子里的空闲线程就去workQueue中取任务并处理* 当workQueue放不下任务时,就新建线程放入线程池,并处理请求,如果池子大小撑到了maximumPoolSize,就用RejectedExecutionHandler来做拒绝处理* 当池子的线程数大于corePoolSize时,多余的线程会等待keepAliveTime长时间,如果无请求可处理就自行销毁** @return*/@Bean("TalentIotThread")public ThreadPoolTaskExecutor  getAsyncExecutor() {ThreadPoolTaskExecutor tp = new ThreadPoolTaskExecutor();//设置核心线程数tp.setCorePoolSize(10);//设置最大线程数tp.setMaxPoolSize(100);//线程使用的缓冲队列tp.setQueueCapacity(10);//设置程序关闭时要等待线程全部执行完tp.setWaitForTasksToCompleteOnShutdown(true);//设置等待时间,超过等待时间后立即停止tp.setAwaitTerminationSeconds(60);//线程名称前缀tp.setThreadNamePrefix("talent-iot-task-");//初始化线程tp.initialize();return tp;}}

2. 调用,ThreadPoolExecutor它的顶级父类是Executor接口,只包含了一个方法——execute,这个方法也就是线程池的“执行”。


public class IotTimer {//通过注解引入配置@Resource(name = "TalentIotThread")private Executor executor;@Scheduled(cron = "0 */2 * * * ?")void talIotDataShare() {for (TalIotDateShare iotDateShare : shareList) {executor.execute(() -> {// 业务代码                 });}}}

http://www.yayakq.cn/news/848146/

相关文章:

  • 乌拉圭网站后缀怎么查二建注册在哪个公司
  • 嘉兴模板建站定制哈尔滨市建设工程信息网黑龙江
  • 西安网站建设APP开发百度云怎么找资源
  • 昆山网站开发ikelvwordpress 购买按钮
  • 苏州网站建设找哪家近五年关于网站建设的参考文献
  • 宁波外贸建站公司电子商务网站的建设课件
  • 响应式网站模板下载营销策划书范文1000字
  • 建设网站的一般步骤是深圳华强北营业时间
  • 国外ps素材网站如何建开发手机网站
  • 智慧政务网站怎么做枣庄有做网站的吗
  • 太原网络公司网站山西建设银行官方网站
  • 网站域名费用怎么做分录设计类专业网站
  • 网站建站六个目标游戏优化
  • 网站建设预算表格株洲定制网站建设
  • 一级A视网站 一级做爰片常州公司网站建设多少钱
  • 大连高端网站建设做网站推广有作用没
  • 重庆seo网络推广关键词常德网站建设网站优化
  • 静态网站做毕业设计网站建设价格差异多少
  • 推广做网站电话建自己的零售网站
  • 网站建设公司挣钱吗建设银行的官方网站积分商场
  • 熊掌号接合网站做seo个人网站有哪些站
  • 怎样建设网络游戏网站wordpress v2ex主题
  • 有口碑的盐城网站建设商城网站哪个公司做的好
  • 犀浦网站建设为什么wordpress不能升级
  • 建设银行网站首页打西安市建设工程交易网
  • 做网站的linux程序代码中国知名的建网站的公司
  • 做漂亮的二维码网站郑州网站建设如何
  • 网站首页图怎么做微网站首选公司
  • 怎么注册晋江网站做的个人网站不能备案
  • 社交网站开发成本专业彩票网站开发 APP开发