标题中的几个概念大概设计到线程同步以及线程阻塞这两个概念。线程同步,就是同一时刻,只有一个线程能执行指定的代码;另外一个线程阻塞就是当前线程暂时停在某个位置,等待某个条件成立之后再继续往下面执行。 线程同步就是,是为了控制多线程工作存在的并发造成共享资源竞争的问题。java中可以通过加锁(monit ...
分类:
编程语言 时间:
2017-04-29 16:17:38
阅读次数:
169
原文地址:http://developer.51cto.com/art/201601/503511.htm 互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的 ...
分类:
其他好文 时间:
2017-04-28 18:40:37
阅读次数:
178
Synchronized 与Lock都是可重入锁,同一个线程再次进入同步代码的时候.可以使用自己已经获取到的锁。 Synchronized是悲观锁机制,独占锁。而Locks.ReentrantLock是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。 Reentr ...
分类:
其他好文 时间:
2017-04-25 14:58:01
阅读次数:
392
java的原子变量类似c++的InterlockedDecrement()操作。其实就是在进行算术时,把整个算式看为一个整体,并且保证同一时间只计算该式子一次。 它的用途比如,多个线程可能会调用某个函数。但是现在只希望它被调用一次后就不被调用了。此时就可以用原子变量来控制,它比对整个方法加锁更加高效 ...
分类:
编程语言 时间:
2017-04-25 11:35:22
阅读次数:
197
大家好,接着上一篇文章,我们继续了解单例模式的扩展功能以及一些注意的事项! 上一篇我们说道,当为懒汉式单例模式的时候,可能存在线程并发导致实例出现多个的问题,这个问题,在Net中通过Lock加锁来实现,在Java中通过syncronized关键字来实现!由于这个代码特别简单,我们就不讨论了! 今天我 ...
分类:
其他好文 时间:
2017-04-23 13:17:42
阅读次数:
165
“/”根目录部分有以下子目录: /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。 /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等 ...
分类:
系统相关 时间:
2017-04-23 01:19:13
阅读次数:
258
shell命令flock通过加锁方式实现互斥访问。 常用语多进程间互斥访问。 flock用flock(2)系统调用实现。 用法 参数 -s: 获取共享锁,有时被称为只读锁。 -x,-e:获取互斥锁,有时称为写锁。默认。 -u:释放锁。这个不是必须的,当文件关闭时(进程结束后,进程文件都被关闭)锁被自 ...
分类:
其他好文 时间:
2017-04-19 00:28:32
阅读次数:
220
继昨天线程介绍后,今天我又把线程中的同步问题总结了一下,现在就和大家一起探讨一下。 线程加锁有什么用处呢?举个例子:比如你现在有30000块大洋在银行存着,现在你到银行取钱,当你输入密码完成后,已经输入取款金额,比如你输入的是20000,就是在银行给你拿钱这个时刻,你老婆也去银行取这笔钱,你老婆同样 ...
分类:
编程语言 时间:
2017-04-16 22:42:05
阅读次数:
204
前段时间看完了《并发编程的艺术》,总感觉自己对于并发缺少一些整体的认识。今天借助《Java并发编程实践》,从一些基本概念开始,重新整理一下自己学过并发编程。从并发基础开始,深入进去,系统学习一下并发编程。 编写线程安全的代码,核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的( ...
分类:
编程语言 时间:
2017-04-15 01:22:49
阅读次数:
199
//hashtable是针对整个hash列表做一个锁定,
//Collections.synchronizedMap:对所有方法加锁,故性能比价差
//ConcurrentHashMap是针对桶锁定,默认16个桶,故相对hashtable,性能很大的提高,锁分段技术
//建议使用ConcurrentHashMap;
finalSegment<K,V>[]segments;
..
分类:
编程语言 时间:
2017-04-12 22:08:19
阅读次数:
245