Vert.x是一个基于JVM、轻量级、高性能的应用平台,非常适用于最新的移动端后台、互联网、企业应用架构。Vert.x基于全异步Java服务器Netty,并扩展出了很多有用的特性。 同时支持多种编程语言 异步无锁编程 对各种IO的丰富支持 极好的分布式开发支持 生态体系日趋成熟 Reactor模式 ...
分类:
其他好文 时间:
2018-07-19 21:16:22
阅读次数:
176
本文主要介绍 java中在并发环境下,有哪些方案实现线程安全,注意 线程问题主要由内存模型引起的(在基础篇中) 目录 valotile可见性 CAS无锁编程 内置锁(同步关键字synchronied) 显示锁(lock) valotile可见性 1 volatile关键字的两层语义(一旦一个共享变量 ...
分类:
编程语言 时间:
2018-06-22 13:38:44
阅读次数:
199
转自:http://blog.csdn.net/kangroger/article/details/47867269 定义 无锁编程是指在不使用锁的情况下,在多线程环境下实现多变量的同步。即在没有线程阻塞的情况下实现同步。这样可以避免竞态、死锁等问题。 原理 CAS是指Compare-and-swa ...
分类:
其他好文 时间:
2017-02-27 01:19:28
阅读次数:
278
无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Synchronization)。 实现非阻塞同步的方案称为“无锁编程算法”( Non-blocking algorithm)。 多线程编程条件下,多个线 ...
分类:
其他好文 时间:
2017-02-19 23:36:26
阅读次数:
170
关于程序并发是老生常谈的话题了,工作中也经常去碰到,有必要来总结一下,其实并发与之关联的解决办法就是锁,加锁会消耗程序的性能和一些资源这是肯定的,当然如果能利用本身的原子性操作(指令的完整执行,在执行期间并不会被其他线程去中断,也不会存在上下文的切换),实现无锁编程是最好的。 1.防止重复请求 最近 ...
分类:
其他好文 时间:
2016-12-11 18:36:08
阅读次数:
158
很多的同学很少使用、或者干脆不了解不可变类(Immutable Class)。直观上很容易认为Immutable类效率不高,或者难以理解他的使用场景。其实不可变类是非常有用的,可以提高并行编程的效率和优化设计。让我们跳过一些宽泛的介绍,从一个常见的并行编程场景说起: 假设系统需要实时地处理大量的订单... ...
分类:
其他好文 时间:
2016-06-11 17:26:22
阅读次数:
169
非阻塞型同步 (Non-blocking Synchronization) 简介
如何正确有效的保护共享数据是编写并行程序必须面临的一个难题,通常的手段就是同步。同步可分为阻塞型同步(Blocking Synchronization)和非阻塞型同步( Non-blocking Synchronization)。
阻塞型同步是指当一个线程到达临界区时,因另外一个线程已经持有访问该共享数据...
分类:
系统相关 时间:
2016-05-27 12:36:27
阅读次数:
266
原文:http://weibo.com/p/1001603876869958445266作者:新浪微博(@NP等不等于P)计算机学习微信公众号(jsj_xx)无锁编程真的是不涉及锁么?无锁编程实现的本质是什么?需要操作系统或者编译器的支持么?本文尝试解答这些问题。1 锁引发的问题使用锁时要特别防止出...
分类:
其他好文 时间:
2015-08-18 09:05:00
阅读次数:
148
1. 选择正确的语言 脚本语言不能使用,尽管它们可以运行得更快更快,当你寻找对几毫秒延迟都不能忍受时,就不能有解释语言的开销,你希望有一个强大的内存模型,能够无锁编程,可选语言有Java Scala和C 11或Go。 ...
分类:
其他好文 时间:
2015-06-21 02:09:37
阅读次数:
127
1 #ifndef MUTEX_CLASS_H 2 #define MUTEX_CLASS_H 3 4 class mutex_class 5 { 6 public: 7 mutex_class(); 8 void lock(); 9 void unlock();10 1...
分类:
其他好文 时间:
2015-05-06 22:32:37
阅读次数:
163