自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

绝版灬小伙的博客

总结自己的学习笔记,扩展所学知识。

  • 博客(11)
  • 收藏
  • 关注

原创 JAVA多线程-Lock的使用(四)-读写锁ReentrantReadWriteLock

读写锁ReentrantReadWriteLock     我们之前讲解的ReentrantLock具有完全互斥排他的效果,即同一时间只有一个线程在执行lock()方法后面的任务。这样做虽然保证了实例变量的线程安全性,但效率是非常低下的。     而ReentrantReadWriteLock类,使用它可以加快运行效率,在某些不需要操作实例变量的方法中,完全可以使用读写锁来提升该方法的代码

2016-02-21 15:35:04 381

原创 JAVA多线程-Lock的使用(三)-Lock与Condiition相关的方法

Lock与Condiition相关的方法    1、int lock.getHoldCount():查询当前线程保持锁定的个数,也就是调用lock()方法的次数    2、int lock.getQueueLength():返回正在等待获取此锁定的线程估计数。          比如:有5个线程,有一个首先执行await()方法,那么调用该方法后返回值为4,说明有4个线程同时在等待lo

2016-02-21 14:53:05 831

原创 JAVA多线程-Lock的使用(二)-公平锁与非公平锁

公平锁与非公平锁       锁Lock分为L:公平锁和非公平锁。       公平锁:表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序。       非公平锁:一种获取锁的抢占机制,是随机获得锁的,和公平锁不一样的就是先来的不一定先得到锁,这个方式可能造成某些线程一直拿不到锁,结果就不公平了。       1、公平锁的案例:package org

2016-02-21 13:33:45 1003

原创 JAVA多线程-Lock的使用(一)-ReentrantLock与Condition

JAVA多线程-Lock的使用      本节主要介绍使用Java5中的Lock对象也能实现同步的效果,而且在使用上更加方便。一、使用ReentrantLock类     在java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定 ,多路分支通知

2016-02-21 12:59:11 357

原创 JAVA多线程-线程间通信(五)-类ThreadLocal的使用

类ThreadLocal的使用    变量值的共享可以使用public static的形式,所有的线程都是用同一个public static变量。如果想实现每一个线程都有自己的共享变量该如何解决呢?    类ThreadLocal主要解决的是:每个线程绑定自己的值,可以将ThreadLocal类比喻成全局存放数据的盒子,盒子中可以存储每一个线程的私有数据。    1、方法get()与n

2016-02-21 10:53:30 381

原创 JAVA多线程-线程间通信(四)-join的使用

方法join的使用        在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结。这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据中的值,就要用到join()这个方法了。方法join()的作用是等待线程对象销毁。demo案例:package org.jksoft.thread.join

2016-02-21 10:04:23 383

原创 JAVA多线程-线程间通信(三)-通过管道进行线程间通信

通过管道进行线程间通信    管道流(pipeStream):用于在不同线程间直接传送数据。    Java的JDK中提供了四个类来使线程间通信,我们这里也可以复习一下java中流的使用。      1)PipedInputStream 和 PipedOutputStream      2)PipedWriter 和PipedReader     项目案例:我们采用字节流去

2016-02-20 18:02:58 277

原创 JAVA多线程-线程间通信(二)-生产者/消费者模式实现

二、生产者/消费者模式实现    生产者/消费者模式是等待/唤醒机制的经典案例1、一生产与一消费:操作值package org.jksoft.thread.product;import org.junit.Test;/** * 测试一:一生产者与一消费者 * * @author mcl * * 2016-2-20-下午1:34:39 */pub

2016-02-20 15:53:28 636

原创 JAVA多线程-线程间通信(一)-等待/通知机制(wait/notify)

线程间通信    线程与线程之间不是独立的个体,它们彼此之间可以相互通信与协作。    线程间通信后,系统之间的交互性会更强大,在大大提交CPU利用率的同时,还会使程序要对各线程任务在处理的过程中进行有效的把控和监督。    学习目录:    一、使用wait/notify实现线程间的通信    二、生产者/消费者模式的实现    三、方法join的使用    四、

2016-02-20 13:20:12 6191

原创 JAVA多线程-对象及变量的并发访问(二)volatile关键字

三、Volatile关键字    关键字volatile的主要作用是使变量在多个线程间可见。3.1 关键字volatile与死循环测试案例: 我想通过改变flag的值,从而停止对service的test()方法,进行停止。package org.jksoft.thread.Volatile;public class Test1 { public static void main(S

2016-02-20 10:51:39 2170

原创 JAVA多线程-对象及变量的并发访问(一)synchronized详解

一、synchronized同步方法1.1 方法内的变量为线程安全    非线程安全的问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果也就是“线程安全”的了。1.2 实例变量非线程安全     如果多个线程共同访问1个对象中的实例变量,则有可能出现“非线程安全”问题。1.3 多个对象多个锁    synchronized关

2016-02-20 09:07:03 4338

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除