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 运行多线程轮询时,外部停止轮询相关推荐

  1. java 流 复制文件_【Java】使用字节流复制文件

    其实用java程序复制文件并不难 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE ...

  2. java thread 头文件_Linux 下 C++ 的多线程基类 - Thread

    在原来的基础上,进行了加强,使之进一步接近 Java 中 Thread 和 Runnable 的用法. 下面是我写的基类,把代码保存在名为 Thread.h 的头文件中. ============== ...

  3. java 读取webapp文件_在Java Webapp和Java Normal应用中读取公共外部属性文件

    但是,我们有以下一些特殊要求, Webapp将部署到tomcat. 格式为.jar的普通Java应用程序将放在/ myapp文件夹下 myappConfig.property文件将放置在/ myapp ...

  4. java 导出mdb文件_Java中Java生成mdb文件工具类

    package com.util; /**  * Java生成mdb文件[MS Access文件]  * 1. 在ClassPath下存一个空的blank.mdb. (也就是在你的项目中包含一个空白的 ...

  5. java 下载wav 文件怎么打开,java播放wav文件,该如何处理

    java播放wav文件 用AudioInputStream实现 用application打开 放不出声音,下面提示错误 java.io.IOException: mark/reset not supp ...

  6. java上传文件到服务器,java上传文件到云服务器

    java上传文件到云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装 ...

  7. java 导出mdb文件_使用Java创建Access数据库文件(.mdb或.accdb)

    Jackcess 2.x的更新:现在使用DatabaseBuilder创建(或打开)数据库,因此要创建一个新的数据库文件,我们这样做 import java.io.File; import java. ...

  8. java nio写文件nul_使用Java NIO编写高性能的服务器 文件下载

    从 JDK 1.4 开始,Java的标准库中就包含了NIO , 即所谓的"New IO".其中最重要的功能就是提供了"非阻塞"的IO,当然包括了Socket.N ...

  9. 【java】java sftp访问文件夹,java smb访问共享文件夹 按时间过滤查找文件 集成springboot

    文章目录 java的sftp传输 sftp按时间过滤文件列表 sftp注意事项 java smb1.0传输 smb1.0按时间过滤文件列表 smb注意事项 java smb2.0/3.0传输(smbj ...

最新文章

  1. Linux(9)用户、组和权限管理
  2. Couchbase 集群小实践
  3. 新概念英语(1-61)A bad cold
  4. 北斗导航 | RAIM奇偶矢量法理论分析(公式推导:原理图)
  5. 自动化测试学习之路--java String、StringBuilder
  6. mysql 包含的那些文件
  7. PHP新闻APP,【优速软件】APP/小程序接口:全部新闻列表,POSCMS,CodeIgniter技术文档,PHP开发文档,迅睿CMS框架官方教程...
  8. 基于python的网易云音乐下载器
  9. 黑龙江高中计算机结业水平测试,黑龙江省普通高中信息技术学业水平考试标准.doc...
  10. Liang-Barsky算法思想及简单cpp实现
  11. 连接HDMI出现没声音
  12. SpringBoot初学笔记(SpringBoot实战之数据库相关操作)
  13. 玩转AWS CloudWatch微信告警
  14. (二)五次多项式轨迹规划
  15. android bilibili弹幕技术解析,bilibili弹幕爬取与比对分析
  16. 从CSDN账户密码被盗说起
  17. 程序员是如何荒废的?
  18. 三进金蝶软件园,记我的面试之旅
  19. CMMI3级和五级之间的区别是什么?
  20. Linux内核级木马与病毒攻防:基础工具介绍

热门文章

  1. 带有谓词的Java中的功能样式-第1部分
  2. android中暂停服务,Android 装逼技术之暗码启动应用
  3. stata F值缺失_stata面板数据回归操作之GMM
  4. php对mysql基础操作_php+mysql的基础操作
  5. C语言预处理命令总结
  6. 【C语言入门学习笔记】如何把C语言程序变成可执行文件!
  7. 乐高ev3搭建图_乐高EV3第一讲,Hello Ev3,搭建机甲战神模型
  8. python换行不执行_PYTHON无法换行问题,求指点
  9. python自动解析json_Python语言解析JSON详解
  10. jsp中的java部分_jsp页面的七个组成部分