摘要: Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放... 阅读全文
posted @ 2016-01-04 16:27 tian830937 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:123456Timer... 阅读全文
posted @ 2016-01-04 16:22 tian830937 阅读(113) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:并发容器之CopyOnWriteArrayList(转载) 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想... 阅读全文
posted @ 2016-01-04 16:21 tian830937 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我... 阅读全文
posted @ 2016-01-04 16:20 tian830937 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。... 阅读全文
posted @ 2016-01-04 16:19 tian830937 阅读(105) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办... 阅读全文
posted @ 2016-01-04 16:18 tian830937 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:同步容器 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Jav... 阅读全文
posted @ 2016-01-04 16:14 tian830937 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了... 阅读全文
posted @ 2016-01-04 16:13 tian830937 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理... 阅读全文
posted @ 2016-01-04 16:12 tian830937 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过s... 阅读全文
posted @ 2016-01-04 16:11 tian830937 阅读(117) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:synchronized 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲... 阅读全文
posted @ 2016-01-04 15:49 tian830937 阅读(112) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。 以下是本文的目录... 阅读全文
posted @ 2016-01-04 15:20 tian830937 阅读(117) 评论(0) 推荐(0) 编辑