Java常见问题(六):线程安全是什么意思?

题目分析:作者正在学习中…

【答案】

  • 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染
  • 线程不安全就是提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

参考文章传送门: link.

【题目拓展】

  • 什么情况下会造成线程的不安全?
    一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据
  • 什么是线程,它与进程又有什么关系?
    答: link.
  • 什么是脏数据
    答:一个事物读取了另一个事物未提交的数据(常常是并发操作引起的,并发操作所带来了一致性问题包括:丢失的修改,不可重复读,读“脏”数据,幻读)。
  • 关于线程安全的其他结论
    答: ArrayList是非线程安全的,Vector是线程安全的;
    HashMap是非线程安全的,HashTable是线程安全的;
    StringBuilder是非线程安全的,StringBuffer是线程安全的。

你可能感兴趣的:(Java常见问题,操作系统)