Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
java面试题_多线程(68题) PDF 下载
匿名网友发布于:2025-06-04 10:55:37
(侵权举报)
(假如点击没反应,多刷新两次就OK!)

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

 

 

资料内容:

 

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⾃自旋锁是⼀一种对多处理理器器相当有效的机制,⽽而在单处理理器器⾮非抢占式的系统中基本上没有作⽤用