标签:latch java util studentList 例子 使用 import 多线程 teacher
一、例子1:
1 package com.cy.test.thread; 2 3 4 import java.util.ArrayList; 5 import java.util.List; 6 import java.util.concurrent.CountDownLatch; 7 import java.util.concurrent.ExecutorService; 8 import java.util.concurrent.Executors; 9 10 public class TestMultiThread { 11 12 /** 13 * n = 核心数*2 + 1 14 */ 15 private static ExecutorService pool = Executors.newFixedThreadPool(5); 16 17 /** 18 * 1.模拟,使用多线程,找到每个学生的老师名字,并且打印出来。 19 * @param args 20 */ 21 public static void main(String[] args) { 22 List<String> studentList = new ArrayList<>(); 23 studentList.add("zhangsan"); 24 studentList.add("lisi"); 25 studentList.add("wangwu"); 26 27 try { 28 CountDownLatch latch = new CountDownLatch(studentList.size()); 29 doFindTeacher(studentList, latch); 30 latch.await(); 31 } catch (InterruptedException e) { 32 e.printStackTrace(); 33 } 34 35 pool.shutdown(); 36 } 37 38 private static void doFindTeacher(List<String> studentList, CountDownLatch latch) { 39 for(String student : studentList){ 40 pool.execute(() -> { 41 System.out.println("开始处理学生:" + student); 42 //模拟查数据库...等操作,查找学生的老师 43 try { 44 Thread.sleep(3000); 45 } catch (InterruptedException e) { 46 e.printStackTrace(); 47 } 48 System.out.println("teacher: " + student + "'s teacher"); 49 50 latch.countDown(); 51 }); 52 } 53 } 54 }
console:
开始处理学生:zhangsan 开始处理学生:lisi 开始处理学生:wangwu teacher: lisi's teacher teacher: wangwu's teacher teacher: zhangsan's teacher
执行时间大约3s,多线程并发执行。
二、例子2:
标签:latch,java,util,studentList,例子,使用,import,多线程,teacher 来源: https://www.cnblogs.com/tenWood/p/11834864.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。