Java线程安全高频面试题及详细答案(实战版).docx

Java线程安全高频面试题及详细答案(实战版).docx

Java线程安全高频面试题及详细答案(实战版)

1.什么是线程安全?线程不安全的根本原因是什么?

参考答案:

线程安全简单来说,就是多线程同时操作共享资源时,程序不会出现数据错乱、结果异常等问题,最终执行结果和单线程串行执行的结果一致。

线程不安全的根本原因主要有三点:

第一,共享可变资源。多个线程同时访问、修改同一个变量、对象、集合等共享数据,这是前提条件,如果没有共享数据,就不存在线程安全问题。

第二,CPU原子性破坏。很多看似简单的操作不是原子操作,比如i++,本质是读取、运算、赋值三步操作,多线程下三步操作会互相穿插覆盖,导致数据丢失。

第三,Java内存模型的可见性、有序性

文档评论(0)

1亿VIP精品文档

相关文档