多线程
文章平均质量分 86
吸引力的觉悟
这个作者很懒,什么都没留下…
展开
-
如何保证单例模式在多线程中的线程安全性
如何保证单例模式在多线程中的线程安全性 对大数据、分布式、高并发学习必须要有多线程的基础。这里讨论一下如何在多线程的情况下设计单例模式。在23中设计模式中单例模式是比较常见的,在非多线程的情况下写单例模式,考虑的东西会很少,但是如果将多线程和单例模式结合起来,考虑的事情就变多了,如果使用不当就会造成灾难性的后果。所以如何使单例模式在多线程中是安全的显得尤为重要。原创 2017-05-05 13:56:51 · 9213 阅读 · 2 评论 -
多线程中ReentrantLock的使用
多线程中ReentrantLock的使用一.使用ReentrantLock类 在java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在jdk1.5中新增了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定,多路分支通知等功能,而且在使用上也比synchronized更加灵活。1.1使用ReentrantLoc原创 2017-07-17 13:06:16 · 2185 阅读 · 0 评论 -
使用ReetrantReadWriteLock类加快运行效率
使用ReetrantReadWriteLock类加快运行效率 在JDK中提供了一种读写锁ReetrantReadWriteLock类,使用它可以加快运行效率,在某些不需要操作实例变量的方法中,完全可以使用读写锁ReetrantReadWriteLock来提升该方法的代码运行速度。 读写锁也有2个锁,一个是读操作相关的锁,也称为共享锁;另一个是写操作相关的锁,也叫排他锁。也就是多原创 2017-07-21 09:07:09 · 1669 阅读 · 0 评论 -
多线程中使用Condition实现等待/通知
多线程中使用Condition实现等待/通知 关键字synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待/通知模式,类ReetranLock也可以实现同样的功能,但需要借助于Condition对象。Condition类是jdk5中出现的技术,使用它有更好的灵活性,比如可以实现多路通知功能,也就是在一个Lock对象里面可以创建多个c原创 2017-07-18 09:21:54 · 565 阅读 · 0 评论 -
公平锁与非公平锁
公平锁与非公平锁 锁Lock分为公平锁与非公平锁。公平锁是表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序。而非公平锁就是一种获取锁的抢占机制,是随机获取锁的,和公平锁不一样的就是先来的不一定先得到锁,这个方式可能造成某些线程拿不到锁,结果也就是不公平的了。 新建Service.java :package service;原创 2017-07-19 08:48:46 · 279 阅读 · 0 评论 -
使用ReentrantLock实现生产者消费者模式
使用ReentrantLock实现生产者消费者模式一. 生产者/消费者模式:一对一交替打印新建MyService.java :package service; importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.ReentrantLock; public class原创 2017-07-20 08:50:14 · 765 阅读 · 0 评论 -
ThreadLocal的使用
ThreadLocal的使用 除了控制资源的访问外,我们可以增加资源来保证所有对象的线程安全。比如,让100个人填写个人信息表,如果只有一支笔,那么大家就得挨个填写,对于管理人员来说,必须保证大家不会去哄抢这仅存的一支笔,否则谁也填不完。从另外一个角度出发,我们可以干脆准备100支笔,人手一支,那么所有人都可以各自为营,很快就能完成表格的填写。 如果说锁是使用第一种思路,那么T原创 2017-07-25 17:54:05 · 203 阅读 · 0 评论