线程
a869035098
这个作者很懒,什么都没留下…
展开
-
Java线程(三):线程协作-生产者/消费者问题
上一篇讲述了线程的互斥(同步),但是在很多情况下,仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者问题是一个经典的线程同步以及通信的案例。该问题描述了两个共享固定大小缓冲区的线程,即所谓的“生产者”和“消费者”在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时...原创 2016-09-07 09:13:48 · 101 阅读 · 0 评论 -
Java进阶(二)当我们说线程安全时,到底在说什么
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/java/thread_safe/ 多线程编程中的三个核心概念 原子性 这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效),要么全部都不执行(都不生效)。 关于原子性,一个非常经典的例子就是银行转账问题:比如A和B同时向C转账10万元。如果转账操...原创 2017-02-05 12:11:40 · 81 阅读 · 0 评论 -
Java进阶(三)多线程开发关键技术
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/java/multi_thread/ sleep和wait到底什么区别 其实这个问题应该这么问——sleep和wait有什么相同点。因为这两个方法除了都能让当前线程暂停执行完,几乎没有其它相同点。 wait方法是Object类的方法,这意味着所有的Java类都可以调用该方法。sleep方法是T...原创 2017-02-05 12:12:37 · 83 阅读 · 0 评论 -
Java进阶(四)线程间通信剖析
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/java/thread_communication/ CountDownLatch CountDownLatch适用场景 Java多线程编程中经常会碰到这样一种场景——某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行。比如开发一个并发测试工具时,主线程需要等到所有测试线程均执行完...原创 2017-02-05 12:13:10 · 96 阅读 · 0 评论