随笔分类 - JAVA高并发
摘要:CountDownLatch: 可以理解为一个计数器,这个工具通常是用来控制线程等待的,比如5个人约打球,只有等人齐了之后才能开始,这种情况适合使用CountDownLatch 循环栅栏(CyclicBarrier): 该类的主要方法如下: 这里拿一个书中的栗子,第一次计数用来确定10个士兵到齐,第
阅读全文
摘要:ps:从北京到杭州可以有不同的路线,这些路线就好比多个线程,在路上可能因为各种原因停停走走,这就好比是线程的等待和通知。Condition条件: 使用sychronized关键字来保证线程的同步时,需要wait()和notify()来保证线程间的通信;而使用重入锁时,则需要通过Condition来使
阅读全文
摘要:重入锁基本使用: 使用java.util.concurrent.locks.ReentrantLock 类来实现,可以替代synchronized关键字。如下例,重入锁有着显示的操作过程,开发者可以手动指定在哪里加锁,在哪里释放(退出临界区时必须释放,不然其他线程没有机会再访问了)。重入的意思是,同
阅读全文
摘要:volatile关键字: 修饰变量,可以保证变量的可见性,但是无法保证对变量复合操作的原子性,如: static volatile int = 0; public static class T implements Runnable{ public void run(){ for(int k=0;k
阅读全文
摘要:等待和通知(wait & notify) 这两个方法并不是在Thread类中的,而是输出Object类,这也意味着任何对象都可以调用这两个方法。当一个线程调用obj.wait()后,该线程就会进入obj对象的等待队列,当obj.notify()被调用时,它就会从这个等待队列中随机唤醒一个线程。 no
阅读全文
摘要:线程的状态 线程的所有状态在Thread中的State枚举中定义 public enum State{ NEW, //刚刚新建的线程,还没有开始执行 RUNNABLE, //执行时的状态 BLOCKED, //在执行过程中遇到synchronized同步块,进入blocked阻塞状态,暂停执行,直到
阅读全文
摘要:一、并行基础 同步/异步:以购物为例,如果你去商场买东西,下单后你需要等售货员去仓库调配货物,然后付款带回家,整个过程是一条直线,这就是同步调用。如果你是网上购物,网上下单付完钱之后,对你来说购物过程就已经结束了,接下来你可以做点其他的事情,比如看电视、做饭,等着商家送货就行了,整个过程在付完钱后出
阅读全文
posted @ 2018-10-29 22:49
HALAZI

浙公网安备 33010602011771号