当前位置: 首页 > 面试经验 >

面试1

优质
小牛编辑
92浏览
2023-03-28

面试1

项目介绍
项目难点
问题:
什么是线程池:线程池为了解决频繁的线程创建和销毁过程中大量性能消耗,使用线程池创建多个线程并放入线程池中,
当我们使用线程的时候,去线程池中去取出线程,使用完毕后再进行一个返还线程池。使用线程池可以对线程进行很好的线程管理,并提升系统的性能。
如何创建线程池:newFiexedThreadPool(int Threads):创建固定数目线程的线程池,有任务提交如果空闲的线程,则使用空闲的线程去执行,没有的话则将任务放入到任务队列中,等待空闲的线程。
newCachedThreadPool():创建一个可缓存的线程池,调用execute 将重用以前构造的线程(如果线程可用),可根据实际情况去调整线程数量的线程池。有任务提交如果空闲的线程,创建新的线程来进行处理。
newSingleThreadExecutor() :特殊的newFiexedThreadPool(int Threads)的创建一个单线程化的Executor,如果有额外任务的提交也会先放入到任务队列中。
newScheduledThreadPool(int corePoolSize) :创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类。
线程池参数:核心工作线程数corePoolSize: 向线程池中提交任务的时候,如果线程池中线程数量小于corePoolSize,不管是否有空闲线程都会创建新的线程去处理任务。直到线程池中线程数量大于等于corePoolSize
线程池中最大线程数maximumPoolSize :如果线程池中线程数量达到了最大值则会执行拒绝策略,否则线程池中任务队列已经满了,但是线程数量小于最大参数时则会创建新的线程来执行任务。
拒绝策略handler如果线程池中线程数量达到了最大值则会执行拒绝策略,否则线程池中任务队列已经满了,但是线程数量小于最大参数时则会创建新的线程来执行任务。


维度建模的步骤:
1.选择业务过程:挑选具体的业务线,比如论文的业务,则一条业务线对应一张论文的事实表
2.声明粒度:定义事务表中一行数据的具体定义,论文事实表中一行数据对应的是一条论文的记录
3.确认维度:支付事实表和那些维度有关系,比如是时间、用户等,时间包括日、周、月等,这里就是标题维度、摘要维度还有关键词维度
4.确认事实表:每一张事实表的度量值为什么
度量值为可以再报表中产生的数据,支付表里的支付记录

拉链表、三范式、关系建模和维度建模、星型模型和雪花模型、星座模型的区别、拉链表是什么,这样做的好处
数据仓库主题的划分:划分方法:主题域划分的方法一般有几种
要么按照业务过程来划分,一个业务过程抽象出一个主题域,比如业务系统中的商品、交易、物流 等
要么按照业务部门来划分,一个业务部门抽象出一个主题域,比如中台部门、业务运营部门、供应链部门 等
要么按照业务系统来划分,一个业务系统抽象出一个主题域,比如搬家系统、erp系统 等

维度表:描述事实表的角度,看待事实的角度,通过多维度观察得到事实表的描述

k8s如何暴露端口:修改service为nodeport :30003(新加端口号,自定义)和type:NodePort 再查看svc   执行:kubectl -n onap get svc




#数据仓库与数据分析实习#
 类似资料: