面试被问到多线程,赶紧背这几条!


meituan到店事业群平台技术部,秋招火热进行中!

内推方式一:
点击图片链接,查看内推二维码,扫码投简历  https://www.cnblogs.com/CATHY-MU/p/15102097.html

内推方式二:
登陆meituan招聘官网( https://campus.meituan.com/),选择岗位投递简历,在内推码输入框中填写内推码( OYkaHKQ)

平台技术部校招咨询qq群 821133476,入群第一时间获知校招岗位开放信息,第一时间获知补录岗位开放信息,快人一步!
牛客网咨询联系这位=》  https://www.nowcoder.com/profile/8998235,我不负责咨询哦

其他文章:
面试被问到.class文件结构,赶紧背这几条!
https://www.nowcoder.com/discuss/684230?source_id=profile_create_nctrack&channel=-1
面试被问到jdk监控工具,赶紧背这几条!
https://www.nowcoder.com/discuss/685100?source_id=profile_create_nctrack&channel=-1
面试被问到操作系统,赶紧背这几条!
https://www.nowcoder.com/discuss/686243?source_id=profile_create_nctrack&channel=-1
面试被问到垃圾回收,赶紧背这几条!
面试被问到散列表,赶紧背这几条!
面试被问到内存管理,赶紧背这几条!
面试被问到arraylist,赶紧背这几条!
面试被问到hashmap,赶紧背这几条!
面试被问到linkedhashmap,赶紧背这几条!
面试被问到 concurrent hashmap,赶紧背这几条!
面试被问到对象的创建过程,赶紧背这几条!

进程和线程
各进程是独立的,而各线程则不一定,同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护;而进程正相反。

为什么要用多线程
单核时代,为了提高cpu和io设备的综合利用率,一个线程执行cpu计算时,另一个线程进行io操作。
多核时代,为了提高cpu利用率,使多个核心都被使用到。

线程的生命周期和状态
new 初始状态
new-(Thread.start())->runnable

runnable 运行状态(包含running运行中 和 ready就绪)
running -(yield()、系统调度)->ready
ready -(系统调度获得时间片)->running

blocked 阻塞状态
running --(等待进入synchronized方法或synchronized块)--> blocked
blocked --(获取到锁)--> running

waiting 等待状态 表示当前线程需要其他线程做出动作(通知或中断)
running --(object.wait(),thread.join(),lockSupport.park())-->waiting
waiting --(object.notify(),object.notifyAll(),lockSupport.unpark(thread))-->running

time_waiting 超时等待 表示当前线程超过一段时间自动返回running状态
running --(object.wait(long),thread.join(long),lockSupport.parkNanos(),lockSupport.parkUntil(),thread.sleep(long))-->time_waiting
time_waiting--(object.notify(),object.notifyAll(),lockSupport.unpark(thread))-->running

terminated 终止状态
running --(执行完成)-->terminated

上下文切换
一个线程的时间片用完,就会回到就绪状态,切换成其他线程。
任务从保存到再加载就叫上下文切换。
消耗大量cpu时间。


#美团##内推##校招##秋招#
全部评论

相关推荐

点赞 10 评论
分享
牛客网
牛客企业服务