2018年1月17日

摘要: CountDownLatch 在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给它的代数初始化CountDownLatch,且计数器无法被重置。当前计数到达0之前,await方法一直受阻塞。 CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每 阅读全文
posted @ 2018-01-17 15:13 forever_elf 阅读(110) 评论(0) 推荐(0)
 
摘要: 信号量维护了一个许可集,若有必要,在许可可用前会阻塞每一个acquire(),然后再取得该许可。每个release()添加一个许可,从而可能释放一个正在阻塞的获取者,但不是用实际的许可对象。Semaphore只可对许可的号码进行认证,并采取相应的行动,拿到信号量的线程可以进入代码,否则就等待,通过a 阅读全文
posted @ 2018-01-17 12:05 forever_elf 阅读(142) 评论(0) 推荐(0)
 
摘要: Java内存分为两种:堆内存和栈内存。 一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生一个数组或对象后,还可以在栈 阅读全文
posted @ 2018-01-17 10:33 forever_elf 阅读(125) 评论(0) 推荐(0)