定义一个单例model;
package com.shirt.test;
/**
* @author xiaxt
* @date 2018/12/21.
*/
public class RunModel {
private boolean isRunning; //执行状态
private String message; //执行信息
private data; //执行数据
private RunModel(boolean b) {
this.isRunning = b;
}
private RunModel setIsRunning(boolean b){
this.isRunning = b;
return this;
}
private RunModel setMessage(String msg){
this.message = msg;
return this;
}
private RunModel setData( data){
this.data = data;
return this;
}
private static class Running {
private static RunModel instance = new RunModel(false);
}
/**
* 线程运行结束
* @return
*/
public static RunModel runOver(){
return getInstance().setIsRunning(false).setMessage(null).setData(null);
}
/**
* 线程开始运行
* @return
*/
public static RunModel running(){
return getInstance().setIsRunning(true);
}
public static RunModel running(String msg){
return getInstance().setIsRunning(true).setMessage(msg);
}
public static RunModel running(String msg, o){
return getInstance().setIsRunning(true).setMessage(msg).setData(o);
}
/**
* 获取定时任务执行状态isRunning
* @return
*/
public static boolean isRunning() {
return getInstance().isRunning;
}
/**
* 获取定时任务执行信息message
* @return
*/
public static String getMessage() {
return getInstance().message;
}
/**
* 获取定时任务执行数据data
* @return
*/
public static getData() {
return getInstance().data;
}
/**
* 获取实例化对象
* @return
*/
public static RunModel getInstance() {
return Running.instance;
}
}
main函数调用测试
package com.shirt.test;
/**
* @author xiaxt
* @date 2018/8/9.
*/
public class MainTest {
public static void main(String[] args){
new Thread(new ThreadA()).start();
new Thread(new ThreadB()).start();
new Thread(new ThreadC()).start();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class ThreadA implements Runnable{//继承Thread类
//重写run方法
public void run(){
if (RunModel.isRunning()){
System.out.println(RunModel.getMessage()+\",线程A跳出!\");
return;
}
RunModel.running(\"线程A执行中\");
System.out.println(\"线程A开始执行\");
try {
Thread.sleep(100);
System.out.println(\"线程A睡眠0.1秒\");
} catch (InterruptedException e) {
e.printStackTrace();
}
RunModel.runOver();
System.out.println(\"线程A执行结束\");
}
}
class ThreadB implements Runnable{//继承Thread类
//重写run方法
public void run(){
if (RunModel.isRunning()){
System.out.println(RunModel.getMessage()+\",线程B跳出!\");
return;
}
RunModel.running(\"线程B执行中\");
System.out.println(\"线程B开始执行\");
try {
Thread.sleep(100);
System.out.println(\"线程B睡眠0.1秒\");
} catch (InterruptedException e) {
e.printStackTrace();
}
RunModel.runOver();
System.out.println(\"线程B执行结束\");
}
}
class ThreadC implements Runnable{//继承Thread类
//重写run方法
public void run(){
if (RunModel.isRunning()){
System.out.println(RunModel.getMessage()+\",线程C跳出!\");
return;
}
RunModel.running(\"线程C执行中\");
System.out.println(\"线程C开始执行\");
try {
Thread.sleep(100);
System.out.println(\"线程C睡眠0.1秒\");
} catch (InterruptedException e) {
e.printStackTrace();
}
RunModel.runOver();
System.out.println(\"线程C执行结束\");
}
}
继续阅读与本文标签相同的文章
上一篇 :
2019年北京科博会落幕 签约总额达286亿元
下一篇 :
简单树
-
陆奇:看好5G技术,但应用好5G还需要时间
2026-05-14栏目: 教程
-
在Visual Studio中使用clang-tidy进行代码分析
2026-05-14栏目: 教程
-
甘薇贾跃亭曝出离婚消息,贾跃亭破产前转账51万美元,作为“家庭费用”
2026-05-14栏目: 教程
-
指静脉识别黑科技加身,6.9秒破百,体验纯电动轿跑零跑S01
2026-05-14栏目: 教程
-
首届中国工业互联网大赛在乌镇开赛
2026-05-14栏目: 教程
