会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
张伯雨
Powered by
博客园
博客园
|
首页
|
新随笔
|
联系
|
订阅
|
管理
上一页
1
···
23
24
25
26
27
28
29
30
31
···
37
下一页
2017年8月30日
面向对象六大原则
摘要: 在此之前,有一点需要大家知道,熟悉这些原则并不是说你写出的程序就一定灵活、清晰,只是为你的优秀代码之路铺上了一层栅栏,在这些原则的指导下你才能避免陷入一些常见的代码泥沼,从而让你专心写出优秀的东西。下面我们就以Android网络框架SimpleNet为例来学习这六大面向对象的基本原则,体会这些原则在开发过程中带来的强大能量。1 单一职责原则单一职责原则的英文名称是Single Responsibi...
阅读全文
posted @ 2017-08-30 13:05 张伯雨
阅读(483)
评论(0)
推荐(0)
编辑
JUC中AQS简介
摘要: AQS,在java.util.concurrent.locks包中,AbstractQueuedSynchronizer这个类是并发包中的核心,了解其他类之前,需要先弄清楚AQS。在JUC的很多类中都会存在一个内部类Sync,Sync都是继承自AbstractQueuedSynchronizer,相信不用说就能明白AQS有多重要。AQS原理AQS就是一个同步器,要做的事情就相当于一个锁,所以就会有...
阅读全文
posted @ 2017-08-30 13:03 张伯雨
阅读(637)
评论(0)
推荐(0)
编辑
JUC中Lock和ReentrantLock介绍及源码解析
摘要: Lock框架是jdk1.5新增的,作用和synchronized的作用一样,所以学习的时候可以和synchronized做对比。在这里先和synchronized做一下简单对比,然后分析下Lock接口以及ReentrantLock的源码和说明。具体的其他的Lock实现的分析在后面会慢慢介绍。Lock框架和synchronized有关synchronized的作用和用法不在具体说明,应该都很熟悉了。...
阅读全文
posted @ 2017-08-30 13:03 张伯雨
阅读(231)
评论(0)
推荐(0)
编辑
Executor框架简介
摘要: Executor框架是在Java5中引入的,可以通过该框架来控制线程的启动,执行,关闭,简化并发编程。Executor框架把任务提交和执行解耦,要执行任务的人只需要把任务描述清楚提交即可,任务的执行提交人不需要去关心。通过Executor框架来启动线程比使用Thread更好,更易管理,效率高,避免this逃逸问题。Executor的实现还提供了对生命周期的支持,以及统计信息收集,应用程序管理机制和...
阅读全文
posted @ 2017-08-30 13:00 张伯雨
阅读(521)
评论(0)
推荐(0)
编辑
CountDownLatch简介
摘要: CountDownLatch是并发包中提供的一个可用于控制多个线程同时开始某动作的类,可以看做是一个计数器,计数器操作是院子操作,同时只能有一个线程去操作这个计数器。可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对象上的await()方法都会阻塞,直到这个计数器的计数值被其他的线程减为0为止。CountDownLatch的一个非常典型的应用场景是:有一个任务想要往...
阅读全文
posted @ 2017-08-30 12:57 张伯雨
阅读(365)
评论(0)
推荐(0)
编辑
CyclicBarrier简介
摘要: CyclicBarrier简介CyclicBarrier和CountDownLatch不同,是当await的数量达到了设定的数量之后,才继续往下执行CyclicBarrier数的是调用了CyclicBarrier.await()进入等待的线程数,当线程数达到了CyclicBarrier初始时规定的数目时,所有进入等待状态的线程被唤醒并继续。 CyclicBarrier就象它名字的意思一样,可看成是...
阅读全文
posted @ 2017-08-30 12:57 张伯雨
阅读(245)
评论(0)
推荐(0)
编辑
Semaphore简介
摘要: Semaphore简介Semaphore是并发包中提供的用于控制某资源同时被访问的个数操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。Semaphore维护了当前访问的个数,提...
阅读全文
posted @ 2017-08-30 12:55 张伯雨
阅读(1043)
评论(0)
推荐(0)
编辑
AtomicInteger简介
摘要: AtomicInteger简介支持原子操作的Integer类主要用于在高并发环境下的高效程序处理。使用非阻塞算法来实现并发控制。源码分析jdk1.7.0_71123456//在更新操作时提供“比较并替换”的作用private static final Unsafe unsafe = Unsafe.getUnsafe();//用来记录value本身在内存的偏移地址private static fin...
阅读全文
posted @ 2017-08-30 12:53 张伯雨
阅读(903)
评论(0)
推荐(0)
编辑
ThreadPoolExecutor简介
摘要: ThreadPoolExecutor简介并发包中提供的一个线程池服务线程池的工作过程线程池刚创建,里面没有线程.任务队列是作为参数传进来的.线程池不会立即执行任务.调用execute()方法添加一个任务,线程池会做如下判断:如果正在运行的线程数量小于corePoolSize,马上创建线程运行这个任务如果正在运行的线程数量大于或等于corePoolSize,这个任务放入队列如果队列满了,且正在运行的...
阅读全文
posted @ 2017-08-30 12:53 张伯雨
阅读(262)
评论(0)
推荐(0)
编辑
synchronized和volatile简介
摘要: 简介volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两种关键字来指定三种简单的存取变量的方式。12345678int i1;int geti1() {return i1;}volatile int i2;int geti2() {return i2;}int i3;synchronized int geti3() {return i3;}geti1...
阅读全文
posted @ 2017-08-30 12:52 张伯雨
阅读(214)
评论(0)
推荐(0)
编辑
上一页
1
···
23
24
25
26
27
28
29
30
31
···
37
下一页