java轮询文件停止线程,java 运行多线程轮询时,外部停止轮询
1,先建一个Map
/**
* 创建一个Map用于存放线程id对象集合,主要是用于到达岗亭之后扫码付费,如果人工收费就需要关闭线程,key是停车记录Id,
*/
public static MapMAPTHREAD = new HashMap();
2.建一个线程类继承Runnable
/**
* 轮询查询网上支付结果
* @author Administrator
*
*/
@Component
public class PollingSearch implements Runnable{
private String flag;
private ParkingRecord parkingRecord;
// @Autowired
// private OnlinePaymentService onlinePaymentService;
//@Autowired
//private CameraLogic cameraLogic;
@Override
public void run() {
try {
CameraLogic cameraLogic = (CameraLogic) SpringUtil.getObject("cameraLogic");
OnlinePaymentService onlinePaymentService = (OnlinePaymentService) SpringUtil.getObject("onlinePaymentServiceImpl");
while(CommonUtil.MAPTHREAD.get(flag).equals("true")) {
Thread.sleep(5000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void setFlag(String flag) {
this.flag = flag;
}
public ParkingRecord getParkingRecord() {
return parkingRecord;
}
public void setParkingRecord(ParkingRecord parkingRecord) {
this.parkingRecord = parkingRecord;
}
public String getFlag() {
return flag;
}
spring容器中无法自动注入,所以用这两句代码获取,springUtil可参考我的另一篇文章 spring ioc容器管理
CameraLogic cameraLogic = (CameraLogic) SpringUtil.getObject("cameraLogic");
OnlinePaymentService onlinePaymentService = (OnlinePaymentService) SpringUtil.getObject("onlinePaymentServiceImpl");
重要的代码在这
while(CommonUtil.MAPTHREAD.get(flag).equals("true")) {
上面代码在根据map中判断了是否执行轮询,当为true时才执行
下面开启线程
final String parkRecordId = oldRecord.getId();
final ParkingRecord parkingRecord = oldRecord;
//将账单id放进map中,为了等待支付完成时可以根据停车记录id找到该账单后删除
CommonUtil.PAYMENTRECORDMAP.put(parkRecordId, paymentRecord.getId());
CommonUtil.MAPTHREAD.put(parkRecordId, "true");
PollingSearch pollingSearch = new PollingSearch();
pollingSearch.setParkingRecord(parkingRecord);
pollingSearch.setFlag(parkRecordId);
Thread thread = new Thread(pollingSearch);
thread.start();
在需要关闭线程的时候
final String parkingRecordId = parkingRecord.getId();
CommonUtil.MAPTHREAD.put(parkingRecordId,"false");
CommonUtil.MAPTHREAD.remove(parkingRecordId);
这样子就可以给各个线程手动关闭了
初学者,不喜勿怪 排版懒得排了
java轮询文件停止线程,java 运行多线程轮询时,外部停止轮询相关推荐
- java 流 复制文件_【Java】使用字节流复制文件
其实用java程序复制文件并不难 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE ...
- java thread 头文件_Linux 下 C++ 的多线程基类 - Thread
在原来的基础上,进行了加强,使之进一步接近 Java 中 Thread 和 Runnable 的用法. 下面是我写的基类,把代码保存在名为 Thread.h 的头文件中. ============== ...
- java 读取webapp文件_在Java Webapp和Java Normal应用中读取公共外部属性文件
但是,我们有以下一些特殊要求, Webapp将部署到tomcat. 格式为.jar的普通Java应用程序将放在/ myapp文件夹下 myappConfig.property文件将放置在/ myapp ...
- java 导出mdb文件_Java中Java生成mdb文件工具类
package com.util; /** * Java生成mdb文件[MS Access文件] * 1. 在ClassPath下存一个空的blank.mdb. (也就是在你的项目中包含一个空白的 ...
- java 下载wav 文件怎么打开,java播放wav文件,该如何处理
java播放wav文件 用AudioInputStream实现 用application打开 放不出声音,下面提示错误 java.io.IOException: mark/reset not supp ...
- java上传文件到服务器,java上传文件到云服务器
java上传文件到云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装 ...
- java 导出mdb文件_使用Java创建Access数据库文件(.mdb或.accdb)
Jackcess 2.x的更新:现在使用DatabaseBuilder创建(或打开)数据库,因此要创建一个新的数据库文件,我们这样做 import java.io.File; import java. ...
- java nio写文件nul_使用Java NIO编写高性能的服务器 文件下载
从 JDK 1.4 开始,Java的标准库中就包含了NIO , 即所谓的"New IO".其中最重要的功能就是提供了"非阻塞"的IO,当然包括了Socket.N ...
- 【java】java sftp访问文件夹,java smb访问共享文件夹 按时间过滤查找文件 集成springboot
文章目录 java的sftp传输 sftp按时间过滤文件列表 sftp注意事项 java smb1.0传输 smb1.0按时间过滤文件列表 smb注意事项 java smb2.0/3.0传输(smbj ...
最新文章
- Linux(9)用户、组和权限管理
- Couchbase 集群小实践
- 新概念英语(1-61)A bad cold
- 北斗导航 | RAIM奇偶矢量法理论分析(公式推导:原理图)
- 自动化测试学习之路--java String、StringBuilder
- mysql 包含的那些文件
- PHP新闻APP,【优速软件】APP/小程序接口:全部新闻列表,POSCMS,CodeIgniter技术文档,PHP开发文档,迅睿CMS框架官方教程...
- 基于python的网易云音乐下载器
- 黑龙江高中计算机结业水平测试,黑龙江省普通高中信息技术学业水平考试标准.doc...
- Liang-Barsky算法思想及简单cpp实现
- 连接HDMI出现没声音
- SpringBoot初学笔记(SpringBoot实战之数据库相关操作)
- 玩转AWS CloudWatch微信告警
- (二)五次多项式轨迹规划
- android bilibili弹幕技术解析,bilibili弹幕爬取与比对分析
- 从CSDN账户密码被盗说起
- 程序员是如何荒废的?
- 三进金蝶软件园,记我的面试之旅
- CMMI3级和五级之间的区别是什么?
- Linux内核级木马与病毒攻防:基础工具介绍
热门文章
- 带有谓词的Java中的功能样式-第1部分
- android中暂停服务,Android 装逼技术之暗码启动应用
- stata F值缺失_stata面板数据回归操作之GMM
- php对mysql基础操作_php+mysql的基础操作
- C语言预处理命令总结
- 【C语言入门学习笔记】如何把C语言程序变成可执行文件!
- 乐高ev3搭建图_乐高EV3第一讲,Hello Ev3,搭建机甲战神模型
- python换行不执行_PYTHON无法换行问题,求指点
- python自动解析json_Python语言解析JSON详解
- jsp中的java部分_jsp页面的七个组成部分