线程安全介绍

线程安全

多个线程同时共享同一个全局变量或静态变量,对其做写的操作,可能汇聚i发生数据冲突。读操作是不会的。

所以可以使用synchornized解决同步问题,即我们所说的线程通信,但是效率是低的。

同步函数若使用synchornized是使用this锁。原理其实就是把方法或函数前加synchornized,多线程引用时候需要抢到“锁”,才有权对其进行读写操作。这个锁可以是一个object类型。

使用syn、lock都是属于单个jvm中同步。

分布式锁和高并发与jvm是没有关系。

多线程死锁

同步函数中签到同步函数,导致死锁状态,原理:锁 无法释放,互相抢有对方的锁

在多线程中需要注意原子性,可见性。

原子性解释为:一个操作进行到底

可见性解释为:在线程池中,一个线程改变了一个全局变量的值,另一条线程应立即更新信息

使用AtomicZnteger可以保证原子性又保证可见性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 9,128评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,465评论 11 349
  • 三年三班李念瑶读书时长30分钟,妈妈陪读30分钟
    李念瑶妈妈阅读 702评论 0 0
  • 每个人都会经历这么一段让你难以忘怀,却又在你感到孤独时令你啜泣,甚至是像个小孩一样嚎啕大哭的过往,就像小说...
    ScooTScofield阅读 1,813评论 0 0
  • 暑假工已过了三分之二,这些天我在祖国的边防小镇,却过着最平静的生活 也许“大隐隐于市”就是这番味道吧!这些日子没有...
    磨子桥阅读 1,040评论 0 0