锁:内置锁 (监视器锁): 每个java对象都可以做一个实现同步的锁,这些锁被成为内置锁. 获得锁的唯一途径就是进入有这个锁保护的代码块或方法重入锁: 由于内置锁是可重入的,因此如果某个线程试图获得一个以已经由他自己持有的锁, 那么这个请求就会成功.重入意味着获取锁的操作粒度是"线程",而不是"调用...
分类:
编程语言 时间:
2014-10-26 09:04:31
阅读次数:
206
飞鸽RPC是一个非常轻量级,且容易修改整合到实际项目中的远程调用框架,基于NIO框架netty开发,轻松支持高并发,支持服务负载均衡,无缝整合spring 一、provider配置 服务器配置 feige.properties 放在classpath...
分类:
编程语言 时间:
2014-10-24 20:53:46
阅读次数:
402
1、nginx相对于apache的优点:轻量级,同样起web服务,比apache占用更少的内存及资源抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊apache相对于..
分类:
Web程序 时间:
2014-10-24 19:09:55
阅读次数:
274
新开了一个专栏,
聊聊高并发, 这个专栏会涉及到并发编程的原理,技术,算法,设计,底层实现,经验积累等方方面面,有空会经常更新。
推荐一下,多多交流...
分类:
其他好文 时间:
2014-10-24 14:39:46
阅读次数:
216
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面...
分类:
数据库 时间:
2014-10-24 14:34:58
阅读次数:
300
最近搞一个高并发的服务中心,需要把数据写入到MySql中,结果测试发现最大TPS才4K,经过讨论后决定先把接收到的数据写到本地,然后通过同步线程再同步到MySql。最初本地存储选用的SqlLite,结果测试发现SqlLite支持并发有问题;又选型BerkeleyDB,经过测试发现BerkeleyDB满足需..
分类:
数据库 时间:
2014-10-23 21:04:20
阅读次数:
257
刚开始看到这个标题,估计很多人都云里雾里的。 请看下面两段:第一种方式: MemoryStream stream = new MemoryStream(); string text = "aasasdfasdfad;sas;fkqeworpkq...
分类:
其他好文 时间:
2014-10-23 19:11:47
阅读次数:
211
在聊聊高并发(六)实现几种自旋锁(一) 这篇中实现了两种基本的自旋锁:TASLock和TTASLock,它们的问题是会进行频繁的CAS操作,引发大量的缓存一致性流量,导致锁的性能不好。
对TTASLock的一种改进是BackoffLock,它会在锁高争用的情况下对线程进行回退,减少竞争,减少缓存一致性流量。但是BackoffLock有三个主要的问题:
1. 还是有大量的缓存一致性流量,...
分类:
其他好文 时间:
2014-10-23 12:40:05
阅读次数:
217
在聊聊高并发(五)理解缓存一致性协议以及对并发编程的影响 我们了解了处理器缓存一致性协议的原理,并且提到了它对并发编程的影响,“多个线程对同一个变量一直使用CAS操作,那么会有大量修改操作,从而产生大量的缓存一致性流量,因为每一次CAS操作都会发出广播通知其他处理器,从而影响程序的性能。”
这一篇我们通过两种实现自旋锁的方式来看一下不同的编程方式带来的程序性能的变化。
先理解一...
分类:
其他好文 时间:
2014-10-22 14:45:38
阅读次数:
279
前些日子接到了一个面试电话,面试内容我印象很深,如何模拟一个并发?当时我的回答虽然也可以算是正确的,但自己感觉缺乏实际可以操作的细节,只有一个大概的描述。
当时我的回答是:“线程全部在同一节点wait,然后在某个节点notifyAll。”
面试官:“那你听说过惊群效应吗?”
我:“我没有听过这个名词,但我知道瞬间唤醒所有的线程,会让CPU负载瞬间加大。”
...
分类:
编程语言 时间:
2014-10-21 19:45:12
阅读次数:
247