
J.U.C
文章平均质量分 73
DroidMind
这个作者很懒,什么都没留下…
展开
-
Java中CountDownLatch、CyclicBarrier、Thread.join方法基本应用
在多线程程序设计中,经常会遇到一个线程等待一个或多个线程的场景,遇到这样的场景应该如何解决?如果是一个线程等待一个线程,则可以通过await()和notify()来实现; 如果是一个线程等待多个线程,则就可以使用CountDownLatch和CyclicBarrier来实现比较好的控制。(1)CyclicBarrier需要所有的子任务都完成时,才执行主任务,这个时候就可以选择使用CyclicBar原创 2015-11-19 19:23:04 · 723 阅读 · 0 评论 -
Java中线程基本知识整理
1、什么是线程线程是正在执行的程序的主体。每个计算机程序至少有一个线程,它就是运行应用程序本身的线程。在Java中,这个线程称为“main thread”,即主线程,它是以执行程序的main()这个方法开始的。在java中,每个程序都有一个以上的线程,这些线程可能连开发者自己也觉察不到,例如运行garbage collection和编译java bytecode成机器指令之类的线程。2、线程的启动线原创 2015-12-07 21:12:10 · 564 阅读 · 0 评论 -
java中synchronized用法基本总结
对于synchronized,基本理解就是可以把任何一个非null对象作为”锁”。1、作用在方法上时,锁住的便是对象实例(this)public class SynchronizedObject { /* * 当synchronized作用在方法上时,锁住的便是对象实例(this) * */ public synchronized void doSomething原创 2015-12-02 09:35:52 · 636 阅读 · 0 评论 -
Object中的wait,notify,notifyAll基本使用
Obj.wait(),与Obj.notify()必须要与synchronized(Obj)一起使用,也就是wait,与notify是针对已经获取了Obj锁进行操作,从语法角度来说就是Obj.wait(),Obj.notify必须在synchronized(Obj){…}语句块内。从功能上来说wait就是说线程在获取对象锁后,主动释放对象锁,同时本线程休眠。直到有其它线程调用对象的notify()唤醒原创 2015-12-02 15:14:04 · 5757 阅读 · 2 评论 -
sleep()与wait()之间的不同
sleep()方法用来阻塞进程一定时间,这个时间可以自己来指定,wait()方法会使线程进入等待状态,并且它不能自动恢复,只有调用了notify()或者notifyAll()之后才能继续执行。最主要的不同是wait()释放了锁或者控制器,但是sleep()在等待的过程中没有释放任何的锁或者控制器。一般情况下,wait()用于线程间的通信,sleep()用于暂停程序的执行。Thread.sleep()翻译 2015-12-02 19:27:39 · 743 阅读 · 0 评论 -
线程同步,对象级别锁,类级别锁
同步一般是指在多线程中,在某一时刻,一个同步块代码只能在一个线程中执行。Java支持多线程执行,所以可能出现两个或者更多的线程访问同一个字段或者对象。同步是一个过程,保持所有并发线程同步执行。同步避免了因共享内存不一致的问题而引起的内存一致性错误。当一个方法声明为同步,并有一个线程持有这个方法对象的监视器,你的线程就会被阻塞,直到这个线程释放这个监视器。同步在Java中使用synchronized翻译 2015-12-02 22:42:17 · 3693 阅读 · 1 评论 -
Java中yield()和join()在线程中的不同
对线程优先级的理解对线程的优先级的理解对于多线程的学习和yield()工作原理的理解非常有帮助。1、如果没有具体指定优先级,那么所有线程优先级都属于普通优先级。 2、优先级分为1到10这十个等级,其中10是最高优先级,1是最低优先级,5属于普通优先级。 3、具有最高优先级的线程将会优先被执行,但是这并不能保证它在启动的时候就是运行状态。 4、对于在线程池中等待被调度的线程来说,当前执行的线程可翻译 2015-12-02 20:58:37 · 611 阅读 · 0 评论 -
J.U.C体系结构(java.util.concurrent)
之前一直都觉得J.U.C比较神秘,所以决定在好好的看看,后面就会结合每部分进行学习了。介绍 java.util.concurrent—Java并发工具类【待写】J.U.C体系的主要大板块包含内容,如下图所示:详细的类图 后面打算翻译一个系列的文章: 1、CountDownLatch 2、CyclicBarrier 3、Exchanger 4、Semaphore后面打算翻译一个系列的文章:原创 2016-03-23 14:39:58 · 3892 阅读 · 0 评论 -
Java中的BlockingQueue系列
一、BlockingQueue BlockingQueue是java.util.concurrent包下的一个接口,它是一个线程安全的队列,所以它最典型的用途就是生产者-消费者模式。 生产线程生产对象放入队列,如果队列放满,该线程就处于阻塞状态,直到消费线程从队列中取出对象进行消费。 消费线程从队列中取出对象进行消费,如果队列为空,该线程处于阻塞状态,直到生产线程生成一个新对象放入队列。...原创 2016-08-20 12:04:11 · 1342 阅读 · 0 评论