java 批次号,java重复批次执行
方案1 使用Phaser
方案2 使用CyclicBarrier
package com.eyu.ahxy.module.common.config;
import static com.eyu.ahxy.module.common.config.OneTwoOneTwoTest4.MAX;
import static com.eyu.ahxy.module.common.config.OneTwoOneTwoTest4.NUM;
import static com.eyu.ahxy.module.common.config.OneTwoOneTwoTest4.phaser;
import java.util.concurrent.Phaser;
public class OneTwoOneTwoTest4 {
static int NUM = 0;
static int MAX = 6;
static Object LOCK = new Object();
static Phaser phaser = new Phaser(2);
public static void main(String[] args) throws InterruptedException {
Thread thread1 = new ThreadTest4();
thread1.start();
Thread thread2 = new ThreadTest4();
thread2.start();
thread1.join();
thread2.join();
}
}
class ThreadTest4 extends Thread {
public void run() {
while (true) {
synchronized (phaser) {
NUM = NUM + 1;
System.err.println(NUM + " ====" + Thread.currentThread());
if (NUM >= MAX) {
break;
}
}
phaser.arriveAndAwaitAdvance();
}
};
}
package com.eyu.ahxy.module.common.config;
import static com.eyu.ahxy.module.common.config.OneTwoOneTwoTest5.MAX;
import static com.eyu.ahxy.module.common.config.OneTwoOneTwoTest5.NUM;
import static com.eyu.ahxy.module.common.config.OneTwoOneTwoTest5.cyclicBarrier;
import java.util.concurrent.CyclicBarrier;
public class OneTwoOneTwoTest5 {
static int NUM = 0;
static int MAX = 6;
static CyclicBarrier cyclicBarrier;
public static void main(String[] args) throws InterruptedException {
cyclicBarrier = new CyclicBarrier(2);
Thread thread1 = new ThreadTest5();
thread1.start();
Thread thread2 = new ThreadTest5();
thread2.start();
thread1.join();
thread2.join();
}
}
class ThreadTest5 extends Thread {
public void run() {
while (true) {
synchronized (ThreadTest5.class) {
NUM = NUM + 1;
System.err.println(NUM + " ====" + Thread.currentThread());
if (NUM >= MAX) {
break;
}
}
try {
cyclicBarrier.await();
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
java 批次号,java重复批次执行相关推荐
- java中批次号_在一个批次中插入多笔记录的几种方法
插入数据库方法很多,下面Insus.NET列举几种方法,看看你常用的是哪一种: 创建一张表: CREATE TABLE [dbo].[Network_Info] ( [ID] INT NOT NULL ...
- js生成批次号_一文知晓MES系统中的批次管控功能
更多精彩,请点击上方蓝字关注我们! MES系统中的生产批次管理,在制造企业特别是流程制造行业,存在一些需要按批号管理的原材料.半成品和成品统一称它们为料号,这些料号在库房和加工现场都有明确的批次标识并 ...
- js生成批次号_【管理】MES系统中的批次管理
精益生产|智能制造|管理前沿我们来自丰田,分享生产技术与管理方法 立即加星标,第一时间看好文 来源|MES百科 全文总计2000字,需阅读5分钟,以下为正文: MES系统可以帮助制造企业解决很多生产管 ...
- SAP PP 成品工单批次号跟所消耗的半成品批次号一致
SAP PP 成品工单批次号跟所消耗的半成品批次号一致 在制药行业里经常有这样的场景或者需求:成品工单是一个包装工单,将生产好的半成品加上内外包材,经过包装后做成可以交付给客户的成品,成品的批次的属性 ...
- MIGO/CO11N 批次创建增强 自定义批次号创建规则
MIGO/CO11N 批次创建增强 在MIGO和CO11N中实现自动带出自定义规则的批次号,实现批次增强,如下所示: 输入采购凭证时批次为空 实现效果:在点击下方的"项目确定"并点 ...
- 【java生成批次号】
根据当前时间加随机数生成批次号 一.代码实现 二.打印结果 一.代码实现 通过当前时间年-月-日-时-分-秒,加上6为随机数,生成批次号 import java.text.DateFormat; im ...
- java 支付宝退款批次号生成
/** * 支付宝批次号生成 * 生成规则:当天日期[8位]+序列号[3至24位],如:201008010000001 * @return */ pri ...
- MySQL编程实战三之求任务执行批次号
MySQL编程实战三之求任务执行批次号 需求: 想产生一个与时间有关的process_id:需要考虑到批次号的不冲突性.例如有很多任务同时执行,这个同时很有可能是在同一毫秒上,所以我们最好使用一个随机 ...
- 使用kettle来根据时间戳或者批次号来批量导入数据,达到增量的效果。
1.Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.下载图形化界面的zip包格式的,直接解压缩使用即可.安装部署模式这里不说了 ...
最新文章
- CVPR 2019收录论文ID公开,你上榜了吗?
- 字节跳动AI Lab 再失大将!大牛王长虎被爆已离职回归学界!
- laravel--表单验证
- 11-jQuery的事件绑定和解绑
- lisp pl线线段数_vlisp每日源码(标注多段线线长)
- 【广东省】2020年下软考证书领取通知
- 如何替换SAP Spartacus启动Component -app-root
- lwip可以用于发udp_CubeMX初始化正点原子STM32F407 LAN8720A调通LWIP
- Vmware工作笔记-通过光驱位与虚拟机(Vmware)共享数据【含iso制作】
- python海贼王logo_Python 实现的下载op海贼王网的图片(网络爬虫)
- 用CLIP做多个视频任务!上交牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!...
- 双十一丨你负责买买买 我做你背后的那个数据人
- linux下配置iscsi存储,linux 下iscsi网络存储配置
- 15_http响应相关概念
- VS2013/2012 下无法打开 源 文件“stdafx.h”的解决方法
- 真来了!已有高校正式通知:排查近5年硕博学位论文!
- 媒体查询@media scree
- AJAXSUBMIT跨域问题
- 8.10.3 熊猫分布密度制图
- 自定义关机计算机,win7自定义定时关机设置方法是什么