zoukankan      html  css  js  c++  java
  • 线程与高并发

    本文仅限个人理解

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

    乐观锁和悲观锁 ​

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

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

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

  • 相关阅读:
    windows下设置sublime
    sublime编辑器快捷键
    Navicat Premium 12.1.8.0安装与激活
    Win查找弹窗广告来源
    canvas-绘制时钟
    H5标签-canvas实现颜色拾取功能
    第一次Sprint团队贡献分
    Sprint第一个冲刺(第十一天)
    Sprint第一个冲刺(第十天)
    Sprint第一个冲刺(第九天)
  • 原文地址:https://www.cnblogs.com/bigbigzhao/p/14172270.html
Copyright © 2011-2022 走看看