2018年10月25日

Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

摘要: 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就 阅读全文

posted @ 2018-10-25 14:32 diaobiyong 阅读(168) 评论(0) 推荐(0) 编辑

JAVA多线程和并发基础面试问答

摘要: 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该 阅读全文

posted @ 2018-10-25 14:31 diaobiyong 阅读(144) 评论(0) 推荐(0) 编辑

Java线程面试题 Top 50

摘要: 原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入Java小组。转载请参见文章末尾的要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是 阅读全文

posted @ 2018-10-25 14:30 diaobiyong 阅读(110) 评论(0) 推荐(0) 编辑

Java并发编程:Timer和TimerTask(转载)

摘要: 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样: Timer timer 阅读全文

posted @ 2018-10-25 14:29 diaobiyong 阅读(124) 评论(0) 推荐(0) 编辑

Java并发编程:Callable、Future和FutureTask

摘要: 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开 阅读全文

posted @ 2018-10-25 14:15 diaobiyong 阅读(105) 评论(0) 推荐(0) 编辑

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

摘要: 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier用法 三.Se 阅读全文

posted @ 2018-10-25 11:21 diaobiyong 阅读(173) 评论(0) 推荐(0) 编辑

Java并发编程:线程池的使用

摘要: 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务 阅读全文

posted @ 2018-10-25 10:42 diaobiyong 阅读(143) 评论(0) 推荐(0) 编辑

Java并发编程:阻塞队列

摘要: 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如 阅读全文

posted @ 2018-10-25 09:12 diaobiyong 阅读(138) 评论(0) 推荐(0) 编辑

导航