
JAVA并发
文章平均质量分 82
sjjsh2
这个作者很懒,什么都没留下…
展开
-
菜鸟之路——Java并发(一)多线程
一、线程的状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 从上图可以看出,Java线程具有五中基本状态: 1、新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 2、就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状...原创 2016-11-18 14:31:57 · 3805 阅读 · 2 评论 -
菜鸟之路——Java并发(二)ThreadLocal
一、什么是ThreadLocal ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路,ThreadLocal的目的是为了解决多线程访问资源时的共享问题。但其实这么说并不准确。ThreadLocal是为变量在每个线程中都创建了一个副本(此副本的意思是通过每个线程中的n原创 2016-11-20 15:37:30 · 2264 阅读 · 1 评论 -
菜鸟之路——Java并发(七)CountDownLatch、CyclicBarrier和Semaphore
在java中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 一、CountDownLatch用法 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后转载 2016-11-24 21:54:20 · 589 阅读 · 0 评论 -
菜鸟之路——Java并发(五)同步容器与并发容器
一、同步容器 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。List、Set、Queue接口分别继承了Collection接口,Map本身是一个接口。 注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Collection接口,分别代表数组、集合和队列这三大类容器。像ArrayList、LinkedList都是实现原创 2016-11-22 22:10:02 · 5695 阅读 · 0 评论 -
菜鸟之路——Java并发(四)线程池的使用
转自:http://www.cnblogs.com/dolphin0520/p/3932921.html 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以转载 2016-11-21 17:13:25 · 874 阅读 · 0 评论 -
菜鸟之路——Java并发(三)Lock
Lock之前在前面的文章菜鸟之路——Java多线程(http://blog.youkuaiyun.com/sjjsh2/article/details/53216146)中有提到,最近看到一篇写的非常易懂的文章,搬过来,加深印象。 本文转载自:http://www.cnblogs.com/dolphin0520/p/3923167.html 在之前文章中我们讲到了如何使用关键字synchroniz转载 2016-11-20 19:57:38 · 558 阅读 · 0 评论 -
菜鸟之路——Java并发(六)阻塞队列
在前面文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeu原创 2016-11-23 19:55:29 · 823 阅读 · 0 评论