随笔分类 -  Java多线程

摘要:单独写,注意,队列并不符合单独写原则,队列的读取操作是一种改变数据结构的操作,即是一种写。 阅读全文
posted @ 2016-08-04 10:26 PaganMonkey 阅读(248) 评论(0) 推荐(0)
摘要:乐观锁并不一定比悲观锁效率高。 以CAS为例,在资源高度竞争的情况下,线程会发现自己得到的资源总是在被快速的修改,此时线程会陷入“获取、修改、比较”的循环之中,在这个情况下, 你无法确定线程需要在此种循环中花费多久。而如果采用悲观锁,每次修改花费的时间是相对固定的。 所以在资源高度竞争的情况下还是使 阅读全文
posted @ 2016-08-03 16:49 PaganMonkey 阅读(142) 评论(0) 推荐(0)
摘要:cas即compare and swap,java.util.concurrent.atomic中的类都是这个原理。 阅读全文
posted @ 2016-04-19 13:58 PaganMonkey 阅读(501) 评论(0) 推荐(0)
摘要:Runnable和Callable Runnable接口只有一个方法: Callable接口也只有一个方法: 同样是用于执行任务,Runnable不带返回值而Callable可以返回值;Callable的执行需要配合ExecutorService,如: 我们可以看到任务提交之后立即返回了Future 阅读全文
posted @ 2016-04-07 20:35 PaganMonkey 阅读(248) 评论(0) 推荐(0)
摘要:http://ifeve.com/java-atomic/ http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 阅读全文
posted @ 2016-04-07 09:12 PaganMonkey 阅读(166) 评论(0) 推荐(0)
摘要:xx 阅读全文
posted @ 2016-02-03 19:58 PaganMonkey 阅读(101) 评论(0) 推荐(0)
摘要:public class Example7 { public static void main(String[] args) { Thread newThread = new Thread(new Runnable() { @Override public void run() { while (t 阅读全文
posted @ 2016-02-01 15:53 PaganMonkey 阅读(220) 评论(0) 推荐(0)
摘要:守护线程与用户线程的区别只在于线程结束的时机。 执行以下代码,你会发现虽然daemonThread线程内部定义了一个死循环,但整个程序任然会在userThread执行完成之后不久自动退出。 public class Example6 { public static void main(String[ 阅读全文
posted @ 2016-02-01 14:55 PaganMonkey 阅读(163) 评论(0) 推荐(0)
摘要:1.这个方法使用键值作为锁对象,缩小了同步范围,提升了效率。 public <T> ServerBootstrap childOption(ChannelOption<T> childOption, T value) { if (childOption == null) { throw new Nu 阅读全文
posted @ 2016-02-01 11:12 PaganMonkey 阅读(243) 评论(0) 推荐(0)
摘要:1.内部锁 每个Java对象都可以隐式地扮演一个用于同步的锁的角色,这些内置的锁被称为内部锁或监视器锁。 获取锁:获取内部锁的唯一途径是,进入这个内部锁保护的同步块或方法。 退出锁:无论通过正常控制路径退出,还是从块中抛出异常,线程都在放弃对synchronized块的控制是自动释放锁。 2.互斥锁 阅读全文
posted @ 2016-02-01 11:00 PaganMonkey 阅读(205) 评论(0) 推荐(0)
摘要:Java提供了强制原子性的内置锁机制:synchronized块。一个synchronized块有两部分:锁对象的引用(作为锁的对象一定要是final的,保证锁对象不会被重新赋值),以及这个锁保护的代码块。 public class Example5 { final static Object lo 阅读全文
posted @ 2016-02-01 09:53 PaganMonkey 阅读(260) 评论(0) 推荐(0)
摘要:1.volatile关键字 理解volatile的关键首先要理解处理器缓存和主存。 如果将一个域声明为volatile,那么只要对这个域产生了写操作,那么所有读操作都可以看到这个修改,即volatile域的写操作会向主存刷新。 同步synchronized也会导致向主存中刷新,所以如果一个域完全由s 阅读全文
posted @ 2016-02-01 09:06 PaganMonkey 阅读(512) 评论(0) 推荐(0)

喜欢的话可以打赏一下哦!!!

支付宝

微信