java并发编程
文章平均质量分 84
英雄郑旺
美团网 基础架构部
展开
-
并发编程学习总结(一) :java 创建线程的三种方式的优缺点和实例
java 创建线程有三种方式:(1) 继承Thread 类(2)实现Runnable接口 (3)实现Callable接口原创 2016-05-04 15:01:43 · 5063 阅读 · 0 评论 -
java中wait()、this.wait()、super.wait()、object.wait()的使用区别
今天有位同学过来问我下面代码中那个super.wait()是什么意思? public synchronized void waitAvailable() { try { if (num == "wait") super.wait(); } catch (InterruptedException ex) { } }那我们今天就来讲一下synchron原创 2016-05-16 17:01:20 · 14186 阅读 · 3 评论 -
并发编程学习总结(三) : 线程的中断详解
如果你使用过杀毒软件,可能会发现全盘杀毒太耗时间了,这时你如果点击取消杀毒按钮,那么此时你正在中断一个运行的线程。java为我们提供了一种调用interrupt()方法来请求终止线程的方法,下面我们就一起来学习一下线程的中断。每一个线程都有一个boolean类型标志,用来表明当前线程是否请求中断,当一个线程调用interrupt() 方法时,线程的中断标志将被设置为true。我原创 2016-05-16 20:51:44 · 6859 阅读 · 0 评论 -
并发编程学习总结(二) : 详解 线程的6种不同状态
(一) 线程状态:我们先讨论一下线程的几种状态:java中Thrad.State总共有6中状态:(1)New (新创建)(2)Runnable (可运行)(3)Bolcked (被阻塞)(4)Waiting (等待)(5)Timed Waiting (计时等待)(6)Terminated (被终止)下面我们分别看一下线程的这6中状态分别出现在什么情况下。原创 2016-05-06 10:44:52 · 4249 阅读 · 0 评论 -
并发编程学习总结(五) :java 显式锁ReentrantLock使用详解之条件对象(2)
(1) ReentrantLock的条件对象通常,线程进入临界区,却发现在某一条件满足之后才能执行,条件对象就是用来管理那些已经获得了锁,但是却不能做有用工作的线程。一个锁对象可以有一个或多个相关的条件对象,我们可用lock.newCondition()方法获得一个条件对象。ReentrantLock myLock = new ReentrantLock();// 获得锁myLock原创 2016-06-13 12:01:12 · 8094 阅读 · 0 评论 -
并发编程学习总结(四) :java 显式锁ReentrantLock使用详解之lock()\unlock() 加锁与释放锁
在大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了一个修改该对象状态的方法,那么线程彼此踩了对方的脚,根据各线程访问数据的次序,可能会产生讹误的对象。这样的一种现象称之为竞争条件。当然多个线程共享一个变量在实际的应用中有时难以避免,但是我们可以通过java提供的一些技术来避免线程彼此踩脚的行为发生。java提供了原创 2016-05-17 20:53:54 · 5582 阅读 · 0 评论 -
并发编程学习总结(六) :java 显式锁ReentrantLock使用详解之测试锁与超时
并发编程学习总结(三) : 线程的中断详解我在上面的这篇博客中,曾经写到过线程在获取锁的过程中是无法中断的。原创 2016-06-13 18:11:47 · 7823 阅读 · 1 评论 -
并发编程学习总结(七) :java中synchronized关键字使用详解(1)
上一篇中学习了显示锁ReentrantLock和其条件对象Condition的使用,下面小小的总结一下:(1) 锁用来保护代码片段,任何时刻只能有一个线程执行被保护的代码片段(2) 锁可以管理试图进入被保护代码片段的线程(3) 锁可以拥有一个或多个相关的条件对象(4) 每个条件对象管理那些已经获得了锁,但还需要满足额外条件才能运行的线程 Lock和Condition接口为程原创 2016-07-06 18:30:06 · 1941 阅读 · 0 评论 -
并发编程学习总结(八) :java中synchronized关键字使用详解 对象锁的相关条件的使用(2)
上一篇博客中主要学习了synchronized关键字使用对象锁和类锁 已经对象锁的一些简单特性。这篇文章中我们主要来学习一下对象锁的相关条件的使用。我们知道显示锁ReentrantLock 有一个或多个相关的条件对象,而对象锁只有一个相关条件。wait()方法添加一个线程到该条件的等待集中notifyAll()/notity()方法解除等待线程的阻塞状态当我们调用对象的相关原创 2016-07-06 19:25:32 · 2011 阅读 · 0 评论