![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
zhangjs712
10年J2EE项目开发经验,3年架构设计经验。曾在用友软件、德勤担任高级工程师、架构师职位。目前在一家SAAS初创公司担任技术总监。对于工作流技术、分布式系统架构、云计算有丰富的经验。
展开
-
单例模式实现延迟加载在多线程下的思考(双检锁和内部类)
java单例模式 class Single{ public static Single single = new Single(); private Single(){} public static getInstance(){ return single ; } } 此方式存在缺点是,singl原创 2016-03-26 17:21:59 · 448 阅读 · 0 评论 -
CAP原理
分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。转载 2016-04-16 10:44:32 · 297 阅读 · 0 评论 -
多线程编程艺术(2)-安全的终止线程
本文内容来源于《多线程编程艺术》一书,本人阅读过程的总结 suspend()、resume()和stop()方法可以完成了线程的暂停、恢复和终止工作,而且非常“人性化”。但是这些API是过期的,也就是不建议使用的。不建议使用的原因主要有:以suspend()方法为例,在调用后,线程不会释放已经占有的资源(比如锁),而是占有着资源进入睡眠状态,这样容易引发死锁问题。同样,stop()方法在终结原创 2016-05-25 17:49:59 · 450 阅读 · 0 评论 -
多线程编程艺术(3)-多线程等待通知编程模型
本文内容来源于《多线程编程艺术》一书,本人阅读过程的总结 关键知识点: 1、调用wait()方法后,会释放对象的锁 等待方遵循如下原则。 1)获取对象的锁。 2)如果条件不满足,那么调用对象的wait()方法,被通知后仍要检查条件。 3)条件满足则执行对应的逻辑。对应的伪代码如下。 synchronized(对象) { while(原创 2016-05-25 17:55:35 · 272 阅读 · 0 评论 -
多线程编程艺术(5)-ThreadLocal的使用
本文内容来源于《多线程编程艺术》一书,本人阅读过程的总结 ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。 可以通过set(T)方法来设置一个值,在当前线程下再通过get()方法获取到原先设置的值。 publ原创 2016-05-25 18:37:32 · 565 阅读 · 0 评论 -
多线程编程艺术(4)-线程间数据传输
本文内容来源于《多线程编程艺术》一书,本人阅读过程的总结 管道输入/输出流和普通的文件输入/输出流或者网络输入/输出流不同之处在于,它主要用于线程之间的数据传输,而传输的媒介为内存。 管道输入/输出流主要包括了如下4种具体实现:PipedOut-putStream、PipedInputStream、PipedReader和PipedWriter,前两种面向字节,而后两种面向字符。原创 2016-05-25 18:35:47 · 530 阅读 · 0 评论 -
什么时候使用CountDownLatch
正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点: 目录 CountDownLatch是什么转载 2016-05-27 09:12:04 · 531 阅读 · 0 评论