
Java多线程
文章平均质量分 72
最美的词
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
展开
-
Java中的volatile关键字
本文内容节选自:Java开发编程:volatile关键字解析原创 2014-08-27 20:25:27 · 1125 阅读 · 0 评论 -
Java线程池
本文大部分内容转自http://www.cnblogs.com/yydcdut/p/3890893.html 1.Java线程池基本原理 线程池基本原理是:系统先启动若干数量的线程,并让这些线程处于睡眠状态,当有新任务时,就会唤醒线程池中的某一个睡眠线程,让它来处理这个任务。当处理完这个任务后,线程又处于睡眠状态。 Java 中,线程池的主要组成部分是工作者线程,这种类型的线程独立于它执行的原创 2014-08-13 17:50:08 · 1686 阅读 · 1 评论 -
Java并发编程:Lock
本文转自:http://www.cnblogs.com/dolphin0520/p/3923167.html Java中可以使用synchronized关键字来实现线程之间对共享变量的同步访问。从Java 1.5以后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问——Lock。 一、synchronized的缺陷 如果一个代码块被s原创 2014-08-28 16:14:58 · 1238 阅读 · 0 评论 -
Java多线程--生产者与消费者问题
说明 Java中,线程之间的通信主要是由java.lang.Object类提供的wait、notify和notifyAll这3个方法来完成: ①对象的wait方法被调用后,线程进入对象的等待队列中,并释放对象锁,其它线程可以竞争使用此对象锁;sleep方法使得一个线程进入睡眠状态,但是线程所占有的资源并没有释放。 ②当对象的notify方法被调用,该方法会从对象的等待队列中随机取出一个线原创 2014-08-13 11:45:18 · 1255 阅读 · 0 评论 -
Java死锁举例
死锁: 在多线程竞争使用共享资源的情况下,就有可能出现死锁的情况。比如,当一个线程等待另一个线程所持有的锁时,那个线程又可能在等待第一个线程所持有的锁。此时,这两个线程会陷入无休止的相互等待状态,这种情况就称为死锁。 产生死锁的四个必要条件: 1、互斥条件。进程对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占有。 2、请求和保持条件。当进程因请求资源而阻原创 2014-08-13 00:58:46 · 2640 阅读 · 1 评论 -
Java并发编程:Callable、Future
在Java中创建创建线程有两种方式,一种是直接继承自Thread类,另一种是实现Runnbale接口。而这两种方式都有一个缺陷:在线程执行完以后无法直接获取执行结果。如果想要获取执行结果可以通过共享变量或者使用线程通信的方式来达到效果,但是这样比较麻烦。 而Callable和Future的作用,就是获得线程执行完以后的结果。 1.Callable Callable是一个接口,类似于R原创 2016-01-26 17:57:18 · 1005 阅读 · 0 评论