每天进步一点点

每天进步一点点

JAVA内存模型-(程锁V传+启断终结)

Java并发编程:volatile关键字解析-(重要,分析仔细) ==================================================================  Java 内存模型 浅析java内存模型--JMM(Java Memory Model...

2018-04-25 11:29:20

阅读数 26

评论数 0

ArrayBlockingQueue

 ArrayBlockingQueue       public interface BlockingQueue<E> extends Queue<E> { /** * ...

2018-04-18 15:54:38

阅读数 33

评论数 0

【多线程总结】

线程需要注意的地方: 1、 public final synchronized void join(long millis) throws InterruptedException { long base = System.currentTimeMillis();...

2017-12-12 15:53:53

阅读数 7

评论数 0

服务器集群对Synchronized有没有什么影响

有个功能大致如下,在一堆没用过的数据中取一条数据,并将其标示为已用,原来是只有一台服务器,在获取并修改状态的方法上加上synchronized就可以,现在要分布部署为多台服务器,会不会出现并发读取到同一条数据的问题,要怎么解决,谢谢。(多服务器synchronized)   答: 集群后...

2015-11-11 15:39:10

阅读数 244

评论数 0

获取id 的一种策略

从数据库中批量(step个)拿出Id,然后使用,待消耗完后再批量拿出Id   key1 = genKey+"##"+subKey;   三个并发Map: mapLock:判断是否存在锁 mapGenId:保存每次的currNo值 mapMaxI...

2015-07-07 17:48:06

阅读数 44

评论数 0

模拟的线程池

自定义数据库连接池   例子: public class ThreadPool extends ThreadGroup { private boolean isClosed = false; //线程池是否关闭 private LinkedList...

2014-09-25 09:51:35

阅读数 14

评论数 0

Thread例子

看看对Thread到底懂多少,嘿嘿    Example1: public class Bground extends Thread{ public static void main(String argv[]) { Bground b = new ...

2014-09-24 17:53:54

阅读数 29

评论数 0

FairSync与NonfairSync

state 为0,表示锁未被获取 不为0,表示已被获取   compareAndSetState(0, acquires)         获取锁时,设置state为acquires   setExclusiveOwnerThread(current)         获取锁时,...

2014-09-24 16:50:07

阅读数 18

评论数 0

线程安全并且无阻塞的Atomic类

原子操作AtomicInteger   public class AtomicLong extends Number implements Serializable     J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。...

2014-09-24 09:03:04

阅读数 38

评论数 0

BlockingQueue

循环队列与优先级队列的Java实现   1、注意Queue、BlockingQueue都是接口   public interface Queue<E> extends Collection<E> {...

2014-09-19 09:51:34

阅读数 13

评论数 0

Lock的await/singal 和 Object的wait/notify 的区别

在使用Lock之前,我们都使用Object 的wait和notify实现同步的。举例来说,一个producer和consumer,consumer发现没有东西了,等待,produer生成东西了,唤醒。 线程consumer 线程producer synchronize(obj){ ...

2014-09-18 11:23:00

阅读数 6

评论数 0

多线程类总结

Executor           execute(Runnable command);      ExecutorService       interface ExecutorService extends Executor     <T&am...

2014-09-16 14:12:26

阅读数 8

评论数 0

Condition

Ojbect:            wait\notify\notifyAll Condition:             await\signal\signalAll   Condition接口API里使用两个condition是否有必要?   class Bounded...

2014-09-15 13:52:48

阅读数 7

评论数 0

Wait-Notify机制

Wait-Notify机制可以说是实现阻塞操作较为高效的一种方式。虽然在实际中鼓励使用类库中已有的满足条件的类,或基于类库中的类来做满足自己特殊需求的开发,并不建议直接使用如此底层的机制,但了解其原理还是很有必要的。   典型的Wait-Notify场景一般与以下内容相关: 1、状态变量...

2014-09-15 09:50:15

阅读数 6

评论数 0

用guava实现简单的事件驱动

Guava的EventBus可以简化生产/消费模型。EventBus通过非常简单的方式,实现了观察者模式中的监听注册,事件分发。有了这个玩意,真的可以替换Observer模式了   Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个L...

2014-07-25 10:28:11

阅读数 95

评论数 0

这个java程序,为什么一个notify唤醒了3个wait

1、 public class Demo6 { public static void main(String[] args) { Go1 q = new Go1(); Go2 qq = new Go2(q); Go3 qqq = new Go3(q); Come ...

2012-10-23 17:01:00

阅读数 13

评论数 0

servlet是否是线程安全的

    Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编...

2012-08-06 20:48:48

阅读数 26

评论数 0

LinkedBlockingQueue + 单向链表基本结构

LinkedBlockingQueue是一个单向链表结构的队列,也就是只有next,没有prev。如果不指定容量默认为Integer.MAX_VALUE。通过putLock和takeLock两个锁进行同步,两个锁分别实例化notFull和notEmpty两个Condtion,用来协调多线程的存取动...

2012-06-15 17:28:50

阅读数 13

评论数 0

利用ReentrantReadWriteLock实现缓存系统

  首先解释下缓存系统:            在程序运行过程中,有些数据我们不会经常修改,例如数据库中性别字段,但是我们却经常使用,如果每次都从数据库中获取,那么将会降低程序性能。那么我们可以在内存中分配一个区域专门存放我们第一次从数据库中拿出的数据。思路如下:我们使用Map来充当我们的缓存...

2012-06-05 14:17:44

阅读数 17

评论数 0

ReentrantReadWriteLock

  /*public class ReentrantReadWriteLock extends Object implements ReadWriteLock, Serializable */   /*嵌套类摘要 static class ReentrantReadWrite...

2012-06-04 11:00:00

阅读数 10

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭