11.5.3线程 同步装置之CyclicBarrier

importjava.util.Random;

importjava.util.concurrent.CyclicBarrier;

/**

*CyclicBarrier维持一个计数器,CountDownLatch不同的是,等待这个CyclicBarrier的线程必须等到计数器的某个值时,才可以继续.

*CyclicBarrier就像它名字的意思一样,可看成是个障碍,所有的线程必须到齐后才能一起通过这个障碍.

*/

/**

*本实例实现一个数组相邻元素的加法,一个线程给数组的第一个元素赋值,然后等待其它线程给数组第二个元素赋值,然后将第一个元素和第二个元素相加.

*/

/**

*CyclicBarrier的关键技术点如下:

*1.构造CyclicBarrier对象时,需要指定计数器的目标值,计数器的初始值为0.

*还可以在构造方法中带一个Runnable参数,表示当计数器到达目标值是,在等待CyclicBarrier的线程被唤醒之前,指定该Runnable任务.

*2.CyclicBarrierawait方法使当前线程进入等待状态,同时将计数器值加1,当计数器到达目标值时,当前线程被唤醒.

*/

publicclassCyclicBarrierTest {

publicstaticclassComponentThreadimplementsRunnable{

CyclicBarrierbarrier;//计数器

intID;//组件

int[]array;//数据数组

publicComponentThread(CyclicBarrier barrier,int[] array,intID){

this.barrier= barrier;

this.ID= ID;

this.array= array;

}

publicvoidrun(){

try{

//RandomnextInt(int n)方法返回一个[0,n)范围内的随机数

array[ID] =newRandom().nextInt(100);

System.out.println("Componet "+ID+" sleep...");

barrier.await();

System.out.println("Componet "+ID+" awaked...");

//计算数据数组中的当前值和后续值

intresult =array[ID] +array[ID+ 1];

System.out.println("Component "+ID+" result: "+ result);

}catch(Exception ex){

}

}

}

/**测试CyclicBarrier的用法*/

publicstaticvoidtestCyclicBarrier(){

finalint[] array =newint[3];

CyclicBarrier barrier =newCyclicBarrier(2,newRunnable(){

publicvoidrun(){

System.out.println("testCyclicBarrier run...");

array[2] = array[0] + array[1];

}

});

//启动线程

newThread(newComponentThread(barrier,array,0)).start();

newThread(newComponentThread(barrier,array,1)).start();

}

publicstaticvoidmain(String... args){

CyclicBarrierTest.testCyclicBarrier();

}

}

黑河是我国西北干旱区最重要的内陆河流之一,灌区分布及水利工程体系直接关系到流域农业发展、水资源配置与生态安全。 本资源包含黑河流域范围内的灌区空间分布矢量数据(Shapefile格式)与干支渠分布栅格图(TIF格式),可广泛应用于农业水资源管理、流域水文模拟、灌溉工程布局分析及生态水文研究等领域。 【数据内容】 灌区分布数据(Shapefile) 数据类型:矢量多边形(Polygon) 坐标系统:WGS 84 或 CGCS2000(具体可查看 .prj 文件)。 干支渠分布图(GeoTIFF) 数据类型:栅格图像(TIF) 分辨率:通常为10–30米,满足中尺度制图与分析; 图像内容:表示黑河流域干渠与支渠的空间路径分布,可作为水利网络基础图层; 内容描述:标识黑河流域主要灌区边界,包括各县(如张掖、高台、临泽、肃南等)所辖的骨干灌区、支渠灌区分布; 属性字段:灌区名称等; 应用价值:可用于构建灌溉水流路径、流量估算、水资源调度仿真模型等。 【典型应用场景】 流域灌溉调度研究:用于构建灌区供水模型,估算引水量与灌溉效率; 遥感与地理建模:与MODIS、Sentinel遥感数据叠加进行土地覆被分类或作物监测; 农业统计分析:与统计年鉴灌溉面积核对比对,服务于灌溉政策评估; 地图制图与展示:支持ArcGIS、QGIS、Mapbox等平台加载使用,可生成专题图; 水文模型输入:可作为SWAT、MIKE SHE 等模型的空间输入因子。 【附加说明】 文件命名清晰,包含 .shp, .shx, .dbf, .prj 等标准矢量格式; TIF 文件配有 .tfw 文件及标准色带,可直接叠加到DEM、水系图等背景图上; 可适配常用 GIS 软件(ArcGIS/QGIS)及建模工具; 数据来源规范,具有较高的空间精度与现势性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值