首页 > 编程语言 > 详细

线程与高并发

时间:2020-12-22 16:01:46      阅读:24      评论:0      收藏:0      [点我收藏+]

本文仅限个人理解

每个程序都是一个独立的进程,每个进程由至少一个线程组成。线程中有两个概念,串行和并行,串行和并行其实跟同步和异步是一样的。串行和同步一样,执行的程序会有一个顺序,当A执行完之后才会执行B。并行和异步一样,在执行前后顺序不会对结果造成影响的情况下一起执行。但是并行还会有一种情况,就是高并发。在一个程序执行多次的时候,jvm会为了压榨cpu使运行结果发生改变。试想一下,一个人访问,结果没问题,几个人访问也没问题,当不知道多少人一起访问的时候,运行代码的顺序会逐渐发生改变。在某一次中使运行结果出现错误。有一个东西可以防止这个情况,那就是锁。

乐观锁和悲观锁 ?

 悲观锁就是为了防止执行过程中出现意外,在运行的代码前边加上[synchronization],表示当这个进程运行时其他进程想要运行需要排队,不能被打断。

? 乐观锁是每次运行时都往最好的方向想,认为每次运行时都不会被打断。他的核心算法是CAS,他赋值的时候分为3个过程:内存值,预期值,新值。如果过程中没有被打断,则赋值,  在赋新值的过程中会再次读取当前数据并且对比之前拿到的内存值,如果内存值没有发生改变则赋值,如果发生改变则再执行一遍流程。直到成功为止。

 

 

----后续理解会继续添加

线程与高并发

原文:https://www.cnblogs.com/bigbigzhao/p/14172270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!