首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试系列之-线程池知识(JAVA基础)

    线程池由两个核心数据结构组成: 1)线程集合(workers):存放执行任务的线程,是一个HashSet; 2)任务等待队列(workQueue):存放等待线程池调度执行的任务,是一个阻塞式队列BlockingQueue; 关闭线程池时有两个关键步骤: 1)修改线程池状态到SHUTDOWN,这时新提交到线程池的任务都会被直接拒绝; 2)中断线程池中的所有线程,中断任务执行回收线程集合中所有线程。 线程池有如下状态: ●RUNNING:接收新任务,处理队列任务。 ●SHUTDOWN:不接收新任务,但处理队列任务。 ●STOP:不接收新任务,也不处理队列任务,并且中断所有处理中的任务。 ●TIDYING:所有任务都被终结,有效线程为0。会触发terminated()方法。 ●TERMINATED:当terminated()方法执行结束 线程池的状态转换规则: (1)线程池创建之后状态为RUNNING。 (2)执行线程池的shutdown()实例方法,会使线程池状态从RUNNING转变为SHUTDOWN (3)执行线程池的shutdownNow()实例方法,会使线程池状态从RUNNING转变为STOP(4)当线程池处于SHUTDOWN状态时,执行其shutdownNow()方法会将其状态转变为STOP(5)等待线程池的所有工作线程停止工作队列清空之后,线程池状态会从STOP转变为TIDYIN(6)执行完terminated()钩子方法之后,线程池状态从TIDYING转变为TERMINATED。

    01

    MySQL8.0 InnoDB并行查询特性

    MySQL经过多年的发展已然成为最流行的数据库,广泛用于互联网行业,并逐步向各个传统行业渗透。之所以流行,一方面是其优秀的高并发事务处理的能力,另一方面也得益于 MySQL 丰富的生态。MySQL 在处理 OLTP 场景下的短查询效果很好,但对于复杂大查询则能力有限。最直接一点就是,对于一个 SQL 语句,MySQL 最多只能使用一个 CPU 核来处理,在这种场景下无法发挥主机CPU多核的能力。MySQL 没有停滞不前,一直在发展,新推出的 8.0.14 版本第一次引入了并行查询特性,使得check table和select count(*) 类型的语句性能成倍提升。虽然目前使用场景还比较有限,但后续的发展值得期待。

    02
    领券