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

Java知识分享网

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

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

AI人工智能学习大礼包

IDEA永久激活

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

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

java面试题_多线程(68题) PDF 下载


分享到:
时间:2025-06-04 10:59来源:http://www.java1234.com 作者:转载  侵权举报
java面试题_多线程(68题)
失效链接处理
java面试题_多线程(68题) PDF 下载

 
 
相关截图:
 


主要内容:
 
1. 什么是线程?
1、线程是操作系统能够进⾏行行运算调度的最⼩小单位,它被包含在进程之中,是进程中的实际运作单位,可以使⽤用多线程对
进⾏行行运算提速。
⽐如,如果⼀个线程完成⼀个任务要100毫秒,那么⽤⼗个线程完成改任务只需10毫秒
 
2. 什么是线程安全和线程不安全?
1、线程安全
线程安全就是多线程访问时,采⽤用了了加锁机制,当⼀一个线程访问该类的某个数据时,进⾏行行保护,其他线程不不能进⾏行行
访问,直到该线程读取完,其他线程才可使⽤用。不不会出现数据不不⼀一致或者数据污染。
Vector 是⽤用同步⽅方法来实现线程安全的, ⽽而和它相似的ArrayList不不是线程安全的。
2、线程不不安全
线程不不安全:就是不不提供数据访问保护,有可能出现多个线程先后更更改数据造成所得到的数据是脏数据
线程安全问题都是由全局变量量及静态变量量引起的。
若每个线程中对全局变量量、静态变量量只有读操作,⽽而⽆无写操作,⼀一般来说,这个全局变量量是线程安全的;若有多个
线程同时执⾏行行写操作,⼀一般都需要考虑线程同步,否则的话就可能影响线程安全。
 
3. 什么是⾃旋锁?
⾃自旋锁是SMP架构中的⼀一种low-level的同步机制。
1、当线程A想要获取⼀一把⾃自旋锁⽽而该锁⼜又被其它线程锁持有时,线程A会在⼀一个循环中⾃自旋以检测锁是不不是已经可⽤用了了。
2、⾃自选锁需要注意:
由于⾃自旋时不不释放CPU,因⽽而持有⾃自旋锁的线程应该尽快释放⾃自旋锁,否则等待该⾃自旋锁的线程会⼀一直在那⾥里里⾃自
旋,这就会浪费CPU时间。
持有⾃自旋锁的线程在sleep之前应该释放⾃自旋锁以便便其它线程可以获得⾃自旋锁。
3、⽬目前的JVM实现⾃自旋会消耗CPU,如果⻓长时间不不调⽤用doNotify⽅方法,doWait⽅方法会⼀一直⾃自旋,CPU会消耗太⼤大
4⾃自旋锁⽐比较适⽤用于锁使⽤用者保持锁时间⽐比较短的情况,这种情况⾃自旋锁的效率⽐比较⾼高。
5⾃自旋锁是⼀一种对多处理理器器相当有效的机制,⽽而在单处理理器器⾮非抢占式的系统中基本上没有作⽤用
 


 

------分隔线----------------------------

锋哥公众号


锋哥微信


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

锋哥推荐