多线程面试题--使用场景

目录

线程池使用场景

 多线程使用场景一( es数据批量导入)

 多线程使用场景二(数据汇总)

 多线程使用场景三(异步调用)

总结 

如何控制某个方法允许并发访问线程的数量

 总结​编辑

 对ThreadLocal的理解

 实现原理

set方法

 get方法/remove方法

ThreadLocal-内存泄露问题

四种引用类型

 内存泄漏

 总结


线程池使用场景

 在使用的时候,首先会给一个初始值,比如图中是3,然后在其他线程中调用countdown()方法,当count=0则继续执行

 

 多线程使用场景一( es数据批量导入)

在我们项目上线之前,我们需要把数据库中的数据一次性的同步到es索引库中,但是当时的数据好像是1000万左右,一次性读取数据肯定不行(oom异常),当时我就想到可以使用线程池的方式导入,利用CountDownLatch来控制,就能避免一次性加载过多,防止内存溢出

  

 多线程使用场景二(数据汇总)

 

 

 多线程使用场景三(异步调用)

总结 

如何控制某个方法允许并发访问线程的数量

 

 总结

对ThreadLocal的理解

 ThreadLocal是多线程中对于解决线程安全的一个操作类,它会为每个线程都分配一个独立的线程副本从而解决了变量并发访问冲突的问题。ThreadLocal 同时实现了线程内的资源共享

 

 实现原理

 ThreadLocal本质来说就是一个线程内部存储类,从而让多个线程只操作自己内部的值,从而实现线程数据隔离

set方法

 get方法/remove方法

ThreadLocal-内存泄露问题

四种引用类型

 内存泄漏

 总结

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值