【java多线程基本概述(二十二)——CountDownLatch(2017-04-20 18:54)】教程文章相关的互联网学习教程文章

java线程同步之CountDownLatch

1、类说明jdk的concurrent包中的CountDownLatch类是一个线程同步的辅助类,它使得线程可以一直等待在其它线程中执行的操作,直到此操作结束。CountDownLatch在初始化的时候指定一个大小值N,调用CountDownLatch的await方法的线程会陷入等待之中,直到这个CountDownLatch对象的countDown方法被调用N次为止,无论是在一个线程中调用N次,还是在N个线程中被调用一次。只有这个对应的CountDownLatch对象的countDown方法总被调用次数为N...

Java并发编程之CountDownLatch

在java中为我们提供了一个同步的辅助类CountDownLatch,这个类用来干什么呢?下面来学习一下。 CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它运行一个或多个线程处于等待的操作。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数...

JAVA中CountDownLatch的简单示例【代码】

publicstaticvoid main(String[] args) throws InterruptedException {CountDownLatch latch =new CountDownLatch(10);for (int i = 0; i < 900; i++) {new Thread(new Runnable() {@Overridepublicvoid run() {System.out.println(Thread.currentThread().getName() );try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();} finally {latch.countDown();}}}).start();}System.out.println("等待子线...

java多线程基本概述(二十二)——CountDownLatch(2017-04-20 18:54)【代码】

它被用来同步一个或者多个任务,轻质它们等待由其他任务执行的一组操作完成。你可以向 CountDownLatch 对象设置一个初始计数值,任何在这个对象上调用 await() 的方法都将阻塞,直到这个计数值为0。其他任务在结束其工作时,可以在该对象上调用 countDown() 来减小这个数值,这个方法不会阻塞线程。 CountDownLatch 被设计为只触发一次,计数值不能被重置。如果你需要能够重置计数值的版本,则可以使用 CyclicBarrier . CountDow...

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore (总结)

下面对上面说的三个辅助类进行一个总结:  1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:    CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行;    而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;    另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。  2)Semaphore其实和锁有点类似,它一...

spark JavaDirectKafkaWordCount 例子分析【代码】

spark JavaDirectKafkaWordCount 例子分析:1、KafkaUtils.createDirectStream( jssc, String.class, String.class, StringDecoder.class, StringDecoder.class, kafkaParams, topicsSet );后面参数意思: 源码是这样 @param ssc StreamingContext object * @param kafkaParams Kafka <a href="http://kafka.apache.org/documentation.html#configuration"> * configurat...

从 modCount 看 java集合 fail-fast 机制【代码】

一、背景在常见的Java的非线程安全集合类中(如HashMap、ArrayList),经常可以在一些修改结构的操作(如Add)中看到实例变量 modCount++ ,来统计集合的修改次数。 从注释也可以看出,该字段是为 fail-fast(快速失败)机制服务。二、简介fail-fast 机制是能立刻报告任何可能导致失败的错误检测机制。在java集合框架中表现为:当构建迭代器时,起初expectedModCount = modCount,当修改了该集合时,则该集合modCount++,随后迭代器...

java_函数手册_String_1.2_codePointCount_获取指定范围文本代码点【代码】【图】

1package calssString;2 3publicclass codePointCount___1_4 {4publicstaticvoid main(String[] args) {5 String strCom = "I LIKE JAVA";6int strLower = strCom.codePointCount(2,9);7 System.out.println(strLower);8 9 strCom = "I LIKE J爱VA"; 10 strLower = strCom.codePointCount(2,9); 11 System.out.println(strLower); 1213 strCom = "I LIKE J1VA"; 14 strLowe...

Java编程MapReduce实现WordCount【代码】

Java编程MapReduce实现WordCount1.编写Mapperpackage net.toocruel.yarn.mapreduce.wordcount;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException; import java.util.StringTokenizer;/*** @author : 宋同煜* @version : 1.0* @createTime : 2017/4/12 14:15* @description :*/ public class WordCountMapper extends Mapper<Obj...

Java [Leetcode 204]Count Primes【代码】【图】

题目描述:Description:Count the number of prime numbers less than a non-negative number, n.解题思路:Let‘s start with a isPrime function. To determine if a number is prime, we need to check if it is not divisible by any number less than n. The runtime complexity of isPrimefunction would be O(n) and hence counting the total prime numbers up to n would be O(n2). Could we do better?As we know the nu...

JAVA对多线程的两个有用的辅助类(CountDownLatch和AtomicBoolean)

AtomicBoolean可以让一个线程等待另一个线程完成任务后再执行:A boolean value that may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. An AtomicBoolean is used in applications such as atomically updated flags, and cannot be used as a replacement for a Boolean.public static void main(String[] args) {Thread t2 = new ...

java同步工具类之CountDownLatch

?? 在一些应用场合中,某段程序需要等待某个条件达到要求后才能执行,或者等待一定长的时间后此行,从jdk1.5开始就可以使用CountDownLatch实现, CountDownLatch类是一个同步倒数计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞后面程序执行,直到计数器为0。public class CountdownLatchTest {public static void main(String[] args) ...

Java并发和多线程4:使用通用同步工具CountDownLatch实现线程等待

CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 CyclicBarrier。 CountDownLatch 是一个通用同步工具,它...

Java并发(7):CountDownLatch、CyclicBarrier、Callable、Future【代码】【图】

CountDownLatch、CyclicBarrier、Callable、Future 都位于java.util.concurrent包下,其中CountDownLatch和CyclicBarrier属于该包中的tools分支,Callable和Future属于该包中的executer分支。一.CountDownLatch  CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只...

Java笔记---Hadoop 2.7.1下WordCount程序详解【代码】【图】

一、前言在之前我们已经在 CenOS6.5 下搭建好了 Hadoop2.x 的开发环境。既然环境已经搭建好了,那么现在我们就应该来干点正事嘛!比如来一个Hadoop世界的HelloWorld,也就是WordCount程序(一个简单的单词计数程序)二、WordCount 官方案例的运行2.1 程序简介WordCount程序是hadoop自带的案例,我们可以在 hadoop 解压目录下找到包含这个程序的 jar 文件(hadoop-mapreduce-examples-2.7.1.jar),该文件所在路径为 hadoop/share/hadoo...