一、可见性什么是可见性?Java线程安全须要防止某个线程正在使用对象状态而还有一个线程在同一时候改动该状态,并且须要确保当一个线程改动了对象的状态后,其它线程能够看到发生的状态变化。 后者就是可见性的描写叙述即多线程能够实时获取其它线程改动后的状态。 *** 待补充 两个工人同一时候记录生产产品.....
分类:
编程语言 时间:
2014-07-16 23:07:41
阅读次数:
218
自旋锁(spinlock)与互斥锁(mutex)是并发编程中两个重要的概念。它们的主要作用是:对共享资源加锁以阻止数据的并发访问,从而保证数据一致性。但是它们也有一些不同点。本文主要介绍这些不同点,并说明我们什么时候该用自旋锁取代互斥锁。
理论基础
理论上,当一个线程尝试去获取一个互斥锁,但由于该互斥锁已经被其它线程获取而没有成功时,它会立刻进入休眠状态,从而让出CPU时间,允许其它线...
分类:
其他好文 时间:
2014-07-10 21:34:15
阅读次数:
241
ReentrantLock 一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。这个类主要基于AQS(AbstractOwnableSynchronizer)封装的 公平与非公平锁。所谓公平锁就是指在多个线程的争...
分类:
编程语言 时间:
2014-07-09 14:31:42
阅读次数:
306
有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库。一、简介 我们将一个正在运行的程序称为进程。每个进程都有它自己的系统状态,包含内存状态、打开文件列表、追踪指令执行情况的程序指针以及一个保存局部变量的调用栈。通常情况下,一个进程依照一个....
分类:
编程语言 时间:
2014-07-08 00:48:44
阅读次数:
257
发现公司支付宝接入的代码有点神奇,在网上搜索了下,找到原始版本。估计有不少人都是抄那份代码的。
原文在:http://blog.csdn.net/simdanfeg/article/details/9011603 Android支付接入(一):支付宝
但是代码里有两个明显的并发问题,尽管在Android下可能不会有问题。
下面摘抄一段:
public class Mobi...
分类:
其他好文 时间:
2014-07-04 00:21:24
阅读次数:
269
造成开销的操作包含:1. 线程之间的协调(比如:锁、触发信号以及内存同步等)2. 添加?的上下文切换3. 线程的创建和销毁4. 线程的调度一、对性能的思考1 性能与可伸缩性执行速度涉及下面两个指标:某个指定的任务单元须要“多快”才干处理完毕、计算资源一定的情况下,能完毕“多少”工作。可伸缩性:当添加...
分类:
编程语言 时间:
2014-06-26 21:19:51
阅读次数:
330
深入分析Volatile的实现原理
引言
在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。
它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上I...
分类:
其他好文 时间:
2014-06-21 19:47:44
阅读次数:
688
《重构-改善既有代码的设计》Martin Fowler 摘要: 第十章 简化函数调用
Rename Method 函数改名
改一个自表达的名字吧!骚年
Add Parameter 添加参数
某个函数需要从调用端得到更多信息。
为此函数添加一个对象参数,让该对象代价函数所需信息。并发编程大多数参数很长,不放在一个类中,因为这样你可以保证传递给函数的参数都是不可修...
分类:
其他好文 时间:
2014-06-10 15:24:00
阅读次数:
210
Erlang是一种并发编程语言(面向并发编程),它可以和分布式、多核/多处理器编程结合的天衣无缝。Erlang主要用来编写分布式的应用程序。下面看看Erlang开发环境的搭建。1.
http://www.erlang.org/download.html下载64位安装文件2. 把安装文件目录配置在环境...
ConcurrentHashMap
ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。
ConcurrentHashM...
分类:
编程语言 时间:
2014-06-08 15:38:47
阅读次数:
326