Edgar-Demo6

package Thread;

import java.util.concurrent.CountDownLatch;

/*
 *  countDownLatch---闭锁--(计数减计时器)--不可复用
 *  (1.5以后开始并发包中提供,并发编程类)
 *  这个类能够使一个线程等待其他线程完成各自的工作后再执行
 * (守护线程是等待其他线程结束(完成后)自己再结束)
 *  Demo:五个检测线程执行完毕后再执行输出系统正常
 *  
 *  在其他线程上加锁,然后等到这些线程都执行完毕后,我们将锁打开程序向下运行
 *  
 *  备注:刚我出了一个bug,线程执行完毕之后一直再等输出系统正常,找了一下是锁初值设置为10了。。。
 *       所以这块的话一定要对应好线程数。。要不这个计数器会一直等下去。。
 */
public class Demo7 {
//闭锁对象的创建
static	CountDownLatch countDownLatch=new CountDownLatch(5);
public static void main(String[] args) {
	
	for (int i = 0; i < 5; i++) {
		Thread thread=new Thread() {
			public void run() {
				System.out.println(this.getName()+"正在检测");
				 countDownLatch.countDown();//计数减一	
			};
		}; 
		thread.start();
	}
  	//等待其他线程结束后通知其他线程可以开始执行
		try {
			//阻塞方法(因为一直在等待)
			countDownLatch.await();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	  System.out.println("系统正常");
}
}
package Thread;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

/*
 * demo:赛跑案例  每个参赛选手都代表一个进程 进程里面有两个部分 
 * 一个是准备一个是起跑 五个人都准备好 才能起跑
 * 
 * 个人目前理解:闭锁用于线程与另外事件的隔离,达到条件 执行另外事件
 * 			   栅栏用于线程组内部之间的协调 线程组内部达到某一条件,每个线程再继续向下走
 * 栅栏:
 * 栅栏类似于闭锁,但是他加在线程中间 或者一组动作之间
 * 栅栏和闭锁的用法的共同点  都有await方法  用于通知
 * 
 * 区别是栅栏没有计数减的方法 
 * 在什么地方技术减,就在什么地方await.
 * 而且栅栏是计数加的过程 是反复加 比如下面的demo 只要加到5 那么栅栏会从0重新开始加
 * 闭锁是一组线程全部结束完,程序往下走,走另外事件了
 * 闭锁是计数减的过程,当减到0以后,闭锁将会一直打开
 * 但是栅栏是,我们都到我们自己任务里的一步了,就等你呢兄弟,兄弟们都到全了,ok,咱们继续把事做完
 * 
 * 使用上闭锁和栅栏有相同的功能 但是栅栏可以复用 会循环计数 而闭锁打开以后就永远打开了
 * (如果这个赛跑案例使用闭锁的话 我们将起跑可以设置成为另外一个线程,5人准备好,闭锁打开,开始起跑线程,但是不能复用)
 */
public class Demo8 {
//创建栅栏 
static CyclicBarrier cyclicBarrier=new CyclicBarrier(5);
//栅栏的另一种构造方法  当我们冲破栅栏的界限,我们优先执行后面的线程
static CyclicBarrier cyclicBarrier2=new CyclicBarrier(5, new Thread() {public void run() {};});
public static void main(String[] args) {
	for (int i = 0; i < 10; i++) {
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Thread thread=new Thread(){
			@Override
			public void run() {
			 System.out.println(this.getName()+"准备好");
			 
			 try {
				cyclicBarrier.await();
			} catch (InterruptedException | BrokenBarrierException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			 System.out.println("跑");
			}
		};
		thread.start();
	}
}
}
/*---输出更加便于理解
Thread-0准备好
Thread-1准备好
Thread-2准备好
Thread-3准备好
Thread-4准备好
跑
跑
跑
跑
跑
Thread-5准备好
Thread-6准备好
Thread-7准备好
Thread-8准备好
Thread-9准备好
跑
跑
跑
跑
跑
如果我们是12个线程需要运行(12个选手--那么最后一组只有两个选手
一直不满足栅栏的条件 一直不会起跑)
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值