Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

2024年java面试题-并发编程相关面试题 PDF 下载


分享到:
时间:2024-04-27 09:54来源:http://www.java1234.com 作者:转载  侵权举报
2024年java面试题-并发编程相关面试题
失效链接处理
2024年java面试题-并发编程相关面试题 PDF 下载
 
 
 
相关截图:
 


主要内容:
 
1. 为什么要使用并发编程
提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论
上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了
CPU的使用效率,如果使用单线程就只能有一个CPU核心被使用。
比如当我们在网上购物时,为了提升响应速度,需要拆分,减库存,生成订单等等这些操作,就可
以进行拆分利用多线程的技术完成。面对复杂业务模型,并行程序会比串行程序更适应业务需求,
而并发编程更能吻合这种业务拆分 。
简单来说就是:
充分利用多核CPU的计算能力;
方便进行业务拆分,提升应用性能
 
2. 多线程应用场景
例如迅雷多线程下载、数据库连接池、分批发送短信等。
 
3. 并发编程有什么缺点
并发编程的目的就是为了能提高程序的执行效率,提高程序运行速度,但是并发编程并不总是能提
高程序运行速度的,而且并发编程可能会遇到很多问题,比如:内存泄漏、上下文切换、线程安
全、死锁等问题。
 
4. 并发编程三个必要因素是什么?
原子性:原子,即一个不可再被分割的颗粒。原子性指的是一个或多个操作要么全部执行成功要么
全部执行失败。
可见性:一个线程对共享变量的修改,另一个线程能够立刻看到。(synchronized,volatile
有序性:程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序)
 
5. Java 程序中怎么保证多线程的运行安全?
出现线程安全问题的原因一般都是三个原因:
线程切换带来的原子性问题 解决办法:使用多线程之间同步synchronized或使用锁(lock)
缓存导致的可见性问题 解决办法:synchronizedvolatileLOCK,可以解决可见性问题
编译优化带来的有序性问题 解决办法:Happens-Before 规则可以解决有序性问题
 
6. 并行和并发有什么区别?
并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是
同时执行。
并行:单位时间内,多个处理器或多核处理器同时处理多个任务,是真正意义上的同时进行
串行:有n个任务,由一个线程按顺序执行。由于任务、方法都在一个线程执行所以不存在线程不
安全情况,也就不存在临界区的问题。
 
 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐