Java并发
文章平均质量分 81
永远的VC
这个作者很懒,什么都没留下…
展开
-
采用synchonized保证线程同步
关于线程安全问题有一个经典的例子就是----银行取钱问题 用户输入账号密码,系统匹配账号密码是否正确 用户输入取款金额 系统判断账号余额是否大于取款金额 如果余额大于取款金额则取款成功,反正取款失败 package com.synchronized1; public class Account { //账号ID private String account...原创 2013-09-11 23:05:38 · 152 阅读 · 0 评论 -
CountDownLatch的介绍和使用
CountDownLatch,一个同步辅助类,以计数的方式在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 CountDownLatch类只提供了一个构造器: public CountDownLatch(int count) { }; //参数count为计数值 下面这3个方法是CountDownLatch类中最重要的方法: public void...2015-07-03 09:16:42 · 102 阅读 · 0 评论 -
CyclicBarrier介绍和使用
CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。 CyclicBarrier类位于java.util.con...原创 2016-05-22 20:10:49 · 192 阅读 · 0 评论 -
Semaphore的介绍和使用
一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。拿到信号量的线程可以进入代码,否则就等待。通过acquire()和release()获取和释放访问许可...2016-05-22 20:24:00 · 486 阅读 · 0 评论 -
Java并发编程之CountDownLatch、CyclicBarrier和Semaphore
java的concurrent包为我们提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天就来介绍下这三个辅助类并进行对比: CountDownLatch的介绍和使用可见我之前的博客: http://wosyingjun.iteye.com/blog/2223933 CyclicBarrier...2016-05-22 20:39:27 · 424 阅读 · 0 评论 -
java线程常见面试题
1、什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。 2、线程和进程有什么区别? 线程是进程的子集,一个进程可以...2016-06-02 13:05:01 · 126 阅读 · 0 评论 -
java线程基础
线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting(睡眠或等待一定的事件)、waiting(等待被唤醒)、消亡(dead)。由于突然中断或者子任务执行完毕,线程就会被消亡。 要实现一个线程,我们一般通过Thread类实现,在Thread类中,有一些...2016-06-14 16:04:33 · 92 阅读 · 0 评论