什么是线程安全?

前面我们已经讨论过进程与线程的关系了。进程是计算机进行资源调配的最小单元,线程是计算机进行运算调度的最小单元。线程包含在进程中,只有进程才有独立的内存空间,而进程内的线程都是使用该进程的内存空间里的数据:

每当执行java -jar来启动一个java应用时,其实就是启动了一个JVM进程,而跑在JVM进程上的线程都在使用JVM进程的内存空间里的数据。那如何保证多个线程对共享数据的正确修改、正确读取就是我们要讲的线程安全问题。对,所谓的线程安全问题其实就是数据安全问题。

线程安全定义:多个线程对共享数据进行读写操作时,保证数据被正确修改、正确读取。所谓正确修改,就是不局限于某个线程内的视角,跳出来,查看全局,发现数据是被正确修改的。所谓正确读取,就是在数据发生修改的那一刻,其他线程可以立

感性认识一下线程安全相关推荐

  1. 多线程编程指南 part 2

    多线程编程指南 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA95054 U.S.A. 文件号码819–7051–10 2006 ...

  2. java detach_线程 (detach的作用)

    线程状态 在一个线程的生存期内,可以在多种状态之间转换.不同操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状 态还可以包含多个子状态.但大体说来,如下几种状态是通用的: 就绪:参与调度, ...

  3. Linux的进程/线程/协程系列4:进程知识深入总结:上篇

    Linux的进程/线程/协程系列4:进程/线程相关知识总结 前言 本篇摘要: 1. 进程基础知识 1.1 串行/并行与并发 1.2 临界资源与共享资源 1.3 同步/异步与互斥 1.4 进程控制原语 ...

  4. linux的进程/线程/协程系列5:协程的发展复兴与实现现状

    协程的发展复兴与实现现状 前言 本篇摘要: 1. 协同制的发展史 1.1 协同工作制的提出 1.2 自顶向下,无需协同 1.3 协同式思想的应用 2. 协程的复兴 2.1 高并发带来的问题 2.2 制 ...

  5. linux的进程/线程/协程系列3:查看linux内核源码——vim+ctags/find+grep

    linux的进程/线程/协程系列3:查看linux内核源码--vim+ctags/find+grep 前言 摘要: 1. 下载linux内核源码 2. 打标签方法:vim+ctags 2.1 安装vi ...

  6. linux的进程/线程/协程系列1:进程到协程的演化

    linux的进程/线程/协程系列1:进程到协程的演化 前言 摘要: 1. 一些历史:批处理时代 2. 现代操作系统启动过程 3. 进程(process)的出现 4. 线程(thread)与线程池 5. ...

  7. POSIX 线程清理函数

    POSIX 多线程的 cleanup 函数 控制清理函数的函数有两个,一个是 pthread_cleanup_push(), 用来把清理函数压入栈中,另一个是 pthread_cleanup_pop( ...

  8. Linux线程性能分析和CPU亲和力

    一,线程迁移和负载均衡 Linux系统在多核CPU和SMP系统上有完善的负载均衡支持.在SMP系统中,每个CPU的核都有一个迁移线程守护程序migration(一般是系统最高优先级139,实时99), ...

  9. 《Java特种兵》5.2 线程安全(一)

    接下来的内容都将基于多核处理器,因为单核处理器不会出现将要谈到的可见性问题,不过并不代表单核CPU上多个线程就没有一致性问题,因为CPU有时间片原则,还会有其他的一些问题,例如重排序. 本节的内容比较 ...

  10. java 手编线程池_死磕 java线程系列之自己动手写一个线程池

    欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写 ...

最新文章

  1. PL SQL笔记(三)
  2. 两篇文章说异常和中断之二
  3. 20155209 林虹宇 Exp9 Web安全基础
  4. linux模式匹配,sed的模式匹配用法探讨
  5. 常用的文本编辑器介绍
  6. python的__name__
  7. 剑指Offer之不用加减乘除做加法
  8. asp.net处理机制管道事件
  9. 一个人喝酒的时候看什么比较应景且下酒?
  10. C语言字符串输出中文乱码
  11. MySQL读写分离原理
  12. linux 怎么格式化u盘写保护,u盘写保护怎么去掉
  13. JSP中的公共菜单模板选中状态的添加
  14. 微软预览word_如何解决Microsoft Word中的打印问题
  15. Flutter中的ISOlate
  16. SQLMAP进阶:参数讲解
  17. python笔迹识别_python_基于KNN算法的笔迹识别
  18. 昆虫繁殖(继续理解递推和递归)
  19. OSI七层模型、TCP/IP四层模型
  20. 沈阳师范大学大二上数据结构第一章绪论(选择+单选+填空))

热门文章

  1. Axure使用心得体会
  2. seo原创文章写作(seo如何提高写原创文章的效率)
  3. FL Studio Producer Edition 21.2.0. Build 3842破解激活版下载,Fl Studio 2024中文破解版补丁
  4. 很多程序员编码时都戴耳机?到底在听什么?
  5. 【深度学习】BERT变体—RoBERTa
  6. 关于ensp报错没有注册base device的问题解决方法
  7. 百度地图BMapGL通过websocket发送的实时点进行打点,并给每个点添加点击事件
  8. Select 选择器显示内容为icon图标选项(Ant Design of Vue)
  9. 17年秋西南大学计算机基础,重庆西南大学17年秋季1056《计算机基础》在线作业(参考复习资料).doc...
  10. java计算机毕业设计家政服务网站源码+数据库+lw文档+系统