Java多线程学习2——互斥一、前言 在上一节 (http://www.cnblogs.com/lzhen/p/3917966.html)中,通过实现Runnable接口,可以实现多线程中的资源的共享,解决了一些基本的问题,但是在实际使用过程中,直接使用其中的第四节中的方法却会产生一些不可预知的.....
分类:
编程语言 时间:
2015-03-10 17:06:36
阅读次数:
193
常用并发辅助类 CountDownLatch Semaphore CyclicBarrier, 都基于ReentrantLock实现。1 Semaphores are often used to restrict the number of threads than can* access s...
分类:
编程语言 时间:
2015-03-10 16:49:14
阅读次数:
160
方案一:
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java....
分类:
编程语言 时间:
2015-03-10 09:01:49
阅读次数:
168
用java多线程实现一个控制台聊天室,呵呵,好玩!聊天室服务器端Java代码packagetf.thread;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importja...
分类:
编程语言 时间:
2015-03-09 23:41:51
阅读次数:
218
ReentrantLock和synchronized的选择1 synchronized的弊端,简化了代码工作,并且与异常处理操作实现了很好的交互,但是表现不够灵活,对线程控制较小,比如无法中断等待的线程,或者无法在请求获取锁时无限的等待,也没法实现非阻塞结构的加锁规则。2 reentrantlock...
分类:
编程语言 时间:
2015-03-09 16:04:42
阅读次数:
166
单线程就是牛逼老板从头到尾一个人做完,另开一个线程就是老板掰出一件事情叫一个小弟去做,这个小弟的进入会加快整个事情的进展,但有时可能会做起事来碍手碍脚。...
分类:
编程语言 时间:
2015-03-09 09:22:44
阅读次数:
176
什么是线程:一个程序执行多个任务,每个人任务称为一个线程.多线程程序是可以同时运行多个一个以上的线程的程序. 具体理解:同一时间运行多个线程,多个线程对同一数据资源进行处理,可能会造成数据的失真性,具体例子...
分类:
编程语言 时间:
2015-03-08 21:42:04
阅读次数:
204
二月份回家过年了,家里没网,所以博客也停了一段时间,上班已经一周了,总的来说还是比较忙吧!周末还是把没总结完的知识点总结一下,方便日后翻阅!
Callable与Future
Runnable封装一个异步运行的任务,可以把它想象成一个没有参数和返回值的异步方法。Callable与Runnable类似,但是有返回值。Callable接口是一个参数化的类型,只有一个方法call。
public i...
分类:
编程语言 时间:
2015-03-08 14:17:22
阅读次数:
196
Markdown编辑器上线啦,终于等到你!
执行器
构建一个新的线程是有一定的代价的,因为涉及到和操作系统的交互。如果程序中创建了大量的生命周期很短的线程,应该使用线程池(thread pool)。
另一个使用线程池的理由是减少并发线程的数目。线程数量太多会大大降低性能甚至会使虚拟机崩溃。如果有一个会创建许多线程的算法,应该使用一个线程数“固定的”线程池以限制并发线程的总数。...
分类:
编程语言 时间:
2015-03-08 14:16:43
阅读次数:
2733
Java1.5以后,Condition将Object监视器方法(wait, notify, notifyAll)分解成截然不同的对象,以便通过这些对象与任意Lock实现组合使用为每个对像提供多个等待set(wait-set)。期中,Lock替代了synchronized方法和语句的使用,Condit...
分类:
编程语言 时间:
2015-03-08 00:05:06
阅读次数:
216