多线程
文章平均质量分 95
星光_依旧灿烂
努力不一定成功,但放弃一定失败
展开
-
线程安全详解
文章目录1.非线程安全2.volatile3.解决线程不安全3.1synchronized3.1.1操作锁的流程3.1.2代码示例3.1.3注意3.1.4三种使用场景3.2Lock手动锁3.3公平锁与非公平锁3.4两种锁区别1.非线程安全使用多线程执行任务,最终得到的结果和预期不一致代码示例:package thread_5_10;public class Demo26 { static int a = 0; public static void main(String[原创 2021-05-16 18:02:12 · 5197 阅读 · 0 评论 -
多线程的创建(超详解)
文章目录1.线程创建的三种方式1.1继承Thread类1.2实现Runnable接口1.3实现Callable接口1.4三种方式比较2.线程分组3.Thread类及常见方法3.1Thread类的常见构造方法3.2Thread类的常见属性3.2.1线程优先级3.2.2线程分类3.2.3线程练习3.3启动一个线程-start( )3.4中断一个线程-interrupt()3.5等待一个线程-join()3.6获得当前线程引用3.7线程休眠4.线程的状态4.1线程的所有状态4.2线程状态图4.3yield()方法原创 2021-05-09 23:41:33 · 1101 阅读 · 7 评论 -
乐观锁与悲观锁
1.乐观锁乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做。2.乐观锁的两种实现方式CAS算法版本号控制3.CAS算法3.1CAS定义CAS(compare and swap):对比并且替换,用于管理对并发数据的共享访问我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。比较 A 与 V 是否相等。(比较)如果比较相等,将 B 写入 V。原创 2021-06-11 15:43:58 · 1235 阅读 · 1 评论