- 博客(7)
- 收藏
- 关注
原创 mysql2
3. 乐观锁和悲观锁 :悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。 乐观锁机制往往基于系统中的数据存储逻辑,因此也具备一定的局限性。可以参见ibernate 的乐观锁与悲观锁 4. 事务隔离级别:InnoDB默认是可重复读的(REPEATABLE READ)。 如何解决此问题? ...
2011-12-08 14:34:40
29
原创 mysql相关
一个数据库操作需要半个小时,并且在一个transaction 内,导致其它的操作因为lock 而timeout 。 为了解决这个问题,找了DBA 了解了数据锁的知识: 1. 两种类型的锁: locks: 共享的(S) 锁允许一个事务去读一行(tuple )。 独占的锁(X) 允许一个事务更新或删除一行。 2. 表锁定,页锁定,行锁定? 看看mysql 使用的是什...
2011-12-08 14:31:20
23
原创 适配器模式
3)实例代码: //目标接口 interface ITarget { void GetPower(); } //220V电源类; class Power { //从电源中得到220V的电压; public void GetPoer220V() { } } //适配器类(充电器);[code="java"][/code] ...
2011-10-10 14:05:08
26
原创 实现一个简单的阻塞队列(2)
classBlockingQ{ privateObject notEmpty= newObject(); privateObject notFull= newObject(); privateQueue linkedList= newLinkedList(); privateintmaxLength= 10; publicObject take() throwsInterruptedEx...
2011-09-30 16:41:12
35
原创 实现一个简单的阻塞队列
classBlockingQ{ privateObject notEmpty= newObject(); privateQueue linkedList= new LinkedList(); publicObject take() throwsInterruptedException{ synchronized(notEmpty) { if(linkedList.size() == 0)...
2011-09-30 16:38:54
26
原创 阻塞队列
ArrayBlockingQueue LinkedBlockingQueue SynchronousQueueproducer // 如果队列满则阻塞 blockingQ.put(object); 阻于生产者-消费者模式。 consumer for(;;) { blockingQ.take(); // 如果队列空则阻塞 } Queue add(E) : boolean of...
2011-09-30 14:48:38
35
原创 任务的提交者和执行者
任务的提交者和执行者 为了方便并发执行任务,出现了一种专门用来执行任务的实现,也就是Executor。 由此,任务提交者不需要再创建管理线程,使用更方便,也减少了开销。 java.util.concurrent.Executors是Executor的工厂类,通过Executors可以创建你所需要的Executor。 任务的提交者和执行者之间的通讯手段 ExecutorServiceexe...
2011-09-30 14:39:59
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人