码迷,mamicode.com
首页 >  
搜索关键字:无锁    ( 351个结果
第一章 - Java与线程
目录 01.Java和线程 02.Java与协程 03.CPU缓存结构和java内存模型 04.管程-悲观锁和锁优化 05.乐观锁 - 无锁方案 06.线程安全 07.线程池 08.JUC 09.高并发测试 10.类加载器 Java与线程 线程的类型 线程是比进程更轻量级的调度执行单位,线程的引入, ...
分类:编程语言   时间:2020-06-26 18:45:04    阅读次数:72
第五章 - 乐观锁 无锁方案
无锁 乐观锁(非阻塞) 共享模式之无锁 CAS 与 volatile 原子整数 原子引用 原子累加器 Unsafe CAS无锁方案 CAS无锁主要看重三个变量: 预估值 + 修改值 + 主存值 预估值: 主要用来判断是否等于主存值, 是则将修改值修改到主存值中 修改值: 即将需要修改的新值, 修改到 ...
分类:其他好文   时间:2020-06-26 18:28:48    阅读次数:57
深度分析:锁升级过程和锁状态,看完这篇你就懂了!
一、前言 锁的状态总共有四种,级别由低到高依次为:无锁、偏向锁、轻量级锁、重量级锁,这四种锁状态分别代表什么,为什么会有锁升级?其实在 JDK 1.6之前,synchronized 还是一个重量级锁,是一个效率比较低下的锁,但是在JDK 1.6后,Jvm为了提高锁的获取与释放效率对(synchron ...
分类:其他好文   时间:2020-06-11 16:33:29    阅读次数:687
Synchronized
锁升级: 无锁——偏向锁——轻量级锁——重量级锁 锁降级很难发生,条件很苛刻。 锁的比较 锁变化流程: ...
分类:其他好文   时间:2020-06-09 16:59:40    阅读次数:43
并发01--并发存在的问题及底层实现原理
一、并发编程的挑战 并发编程的挑战 多线程程序不一定运行的比单线程快: (1)上下文切换 任务从保存到再加载的过程就是一次上下文切换; 减少上下文切换的方法:无锁并发编程、CAS算法、使用最少线程和使用协程。 a、无锁并发编程:多线程会竞争锁会引起上下文切换,因此使用无锁并发编程,可以避免上下文切换 ...
分类:其他好文   时间:2020-06-09 16:36:45    阅读次数:76
hyperledger fabric 性能测试 随笔
自己写了一个基于Java的SDK。本机Mac Pro 2018。服务器 百度云4c8g 1Mbps 本机的SDK基于Google Conscrypt,签名操作可以轻松上到1000tps 几点注意点如下 1. SDK无锁发送提案之后,对服务器的压力可以大幅提升,所以SDK客户端需要做限流。 2.服务器 ...
分类:其他好文   时间:2020-06-08 00:45:14    阅读次数:130
原子操作类
前言 在并发编程中,如果要想保证共享数据的安全性,我们一般都需要加锁。但是加锁会使得程序效率明显降低。 在java.util.concurrent.atomic包下,JDK中就为我们提供了使用CAS算法的无锁的原子操作类,可以提高并发编程程序的效率。 这些原子操作类的CAS算法都是利用Unsafe提 ...
分类:其他好文   时间:2020-05-11 23:29:07    阅读次数:71
你说自己5年经验,却不知道synchronized关键字的底层原理?
一个小伙伴最近参加某一线互联网公司的面试,被问到了一些并发相关的问题,看看大家能否答出来: (1)synchronized的CPU原语级别是如何实现的? (2)无锁、偏向锁、轻量级锁、重量级锁有什么差别,升级过程如何? (3)线程间通信,同机器进程间通信,跨机器进程间通信,各有什么方法? (4)下列 ...
分类:其他好文   时间:2020-05-11 20:32:35    阅读次数:164
并发编程之 CAS 的原理
什么是CAS CAS (compareAndSwap),中文叫比较交换,一种无锁原子算法。 过程是这样:它包含 3 个参数 CAS(V,E,N),V表示要更新变量的值,E表示预期值,N表示新值。 仅当 V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做两个更新,则当前线程 ...
分类:其他好文   时间:2020-05-08 23:15:08    阅读次数:119
LeetCode——多线程问题汇总
[TOC] 一般解决多线程问题,有以下几种解决方式: 1. Semaphore(信号量) 2. Lock(管程模型),无锁 3. CountDownLatch(计数器) 4. CyclicBarrier(循环栅栏) Semaphore(信号量) Semaphore主要用于控制当前活动线程数目,就如同 ...
分类:编程语言   时间:2020-05-03 20:34:24    阅读次数:64
351条   上一页 1 2 3 4 5 ... 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!