会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
潇湘剑雨
Powered by
博客园
博客园
|
首页
|
新随笔
|
联系
|
订阅
|
管理
2016年9月2日
Java基础之线程障碍器
摘要: Java中,添加了障碍器类,为了适应一种新的设计需求,比如一个大型的任务,常常需要分配好多子任务去执行,只有当所有子任务都执行完成时候,才能执行主任务,这时候,就可以选择障碍器了。障碍器是多线程并发控制的一种手段
阅读全文
posted @ 2016-09-02 15:48 潇湘剑雨
阅读(266)
评论(0)
推荐(0)
编辑
Java基础之线程原子量
摘要: 所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题。在Java5之前,可以通过volatile、synchronized关键字来解决并发访问的安全问题,但这样太麻烦。Java5之后,专门提供了用来进行单变量多
阅读全文
posted @ 2016-09-02 15:37 潇湘剑雨
阅读(311)
评论(0)
推荐(0)
编辑
Java基础之线程新特性条件变量
摘要: 条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newCondition()方法来获取的,这样,条件就和一个锁对象绑定起来了。因此,Java中的条件变量只能和锁配合使用,来控制并发程序访问竞争资源的安全。条件变
阅读全文
posted @ 2016-09-02 15:32 潇湘剑雨
阅读(291)
评论(0)
推荐(0)
编辑
Java基础之线程阻塞栈
摘要: 阻塞栈,与阻塞队列相似。不同点在于栈是“后入先出”的结构,每次操作的是栈顶,而队列是“先进先出”的结构,每次操作的是队列头;Java为阻塞栈定义了接口:java.util.concurrent.BlockingDeque,其实现类也比较多
阅读全文
posted @ 2016-09-02 15:23 潇湘剑雨
阅读(208)
评论(0)
推荐(0)
编辑
Java基础之线程阻塞队列
摘要: 阻塞队列是Java线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用
阅读全文
posted @ 2016-09-02 15:20 潇湘剑雨
阅读(143)
评论(0)
推荐(0)
编辑
Java基础之线程信号量
摘要: Java的信号量实际上是一个功能完毕的计数器,对控制一定资源的消费与回收有着很重要的意义,信号量常常用于多线程的代码中,并能监控有多少数目的线程等待获取资源,并且通过信号量可以得知可用资源的数目等等,这里总是在强调“数目”二字,但不能指出来有哪些在等待,哪些资源可用
阅读全文
posted @ 2016-09-02 15:17 潇湘剑雨
阅读(315)
评论(0)
推荐(0)
编辑
Java基础之线程锁
摘要: 在Java中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制;这些内容主要集中在java.util.concurrent.locks包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock Condition将Object监视器方法(w
阅读全文
posted @ 2016-09-02 15:15 潇湘剑雨
阅读(277)
评论(0)
推荐(0)
编辑
Java基础之有返回值的线程
摘要: 可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了
阅读全文
posted @ 2016-09-02 15:07 潇湘剑雨
阅读(204)
评论(0)
推荐(0)
编辑
Java基础之线程池
摘要: 线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源,在使用线程池之前,必须知道如何去创建一个线程池,在Java中
阅读全文
posted @ 2016-09-02 15:03 潇湘剑雨
阅读(163)
评论(0)
推荐(0)
编辑
Java基础之线程并发协作(生产消费者模式)
摘要: 实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。对于此模型,应该明确一下几点:1、生产者仅仅在仓储未满时候生产,仓满则停止生产;2、消费者仅仅在仓储有产品时候才能消费,仓空则等待;3、当消费者发现仓储没产品可消费时候会通知生产者生产;4、生产者在生产
阅读全文
posted @ 2016-09-02 14:03 潇湘剑雨
阅读(226)
评论(0)
推荐(0)
编辑
Java基础之线程的交互
摘要: void notify() 唤醒在此对象监视器上等待的单个线程 void notifyAll() 唤醒在此对象监视器上等待的所有线程 void wait() 导致当前的线程等待,直到其他线程调用此对象的 notify()方法或 notifyAll()方法 关于等待/通知,要记住的关键点是:必须从同步
阅读全文
posted @ 2016-09-02 11:42 潇湘剑雨
阅读(144)
评论(0)
推荐(0)
编辑
Java基础之线程synchronized关键字
摘要: synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块 1. synchronized 方法:通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如: public synchronized void
阅读全文
posted @ 2016-09-02 10:32 潇湘剑雨
阅读(154)
评论(0)
推荐(0)
编辑
Java基础之线程同步和锁
摘要: 从结果发现,这样的输出值明显是不合理的,且结果是变动的,原因是两个线程不加控制的访问Foo对象并修改其数据所致;如果要保持结果的合理性,只需要达到一个目的,就是将对Foo的访问加以限制,每次只能有一个线程在访问 Java中一个对象只有一个锁。所以,如果一个线程获得该锁,就没有其他线程可以获得锁,直到
阅读全文
posted @ 2016-09-02 10:28 潇湘剑雨
阅读(219)
评论(0)
推荐(0)
编辑