java 停止程序执行
现有一个tt类,类中有一个start方法和restart方法我想在主函数中先调用start方法,然后当监听到一个事件的时候停止start的执行再通过restart重新执行...
现有一个tt类,类中有一个 start方法和restart方法
我想在主函数中先调用start方法,然后当监听到一个事件的时候停止start的执行 再通过restart重新执行start
问题是 当我监听到事件后 有办法来停止此时正在执行的start吗?
class tt{
void start(){
while(true){
try{
Thread.sleep(1000);
}catch(InterruptedException e) {}
System.out.println(1);
}
}
void restart(){
start();
}
public static void main(String args[]){
tt t=new tt();
t.start();
//此处写一个方法停止start的执行
t.restart();//重新执行start()
}
} 展开
我想在主函数中先调用start方法,然后当监听到一个事件的时候停止start的执行 再通过restart重新执行start
问题是 当我监听到事件后 有办法来停止此时正在执行的start吗?
class tt{
void start(){
while(true){
try{
Thread.sleep(1000);
}catch(InterruptedException e) {}
System.out.println(1);
}
}
void restart(){
start();
}
public static void main(String args[]){
tt t=new tt();
t.start();
//此处写一个方法停止start的执行
t.restart();//重新执行start()
}
} 展开
4个回答
展开全部
import javax.swing.JOptionPane;
class tt {
boolean boo;
void start() {
int i = 0;
boo = true;
while (boo) {
try {
i++;
judge(i);// 判断是否结束运行
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println(i);
}
}
void restart() {
start();
}
//每执行5次判断是否结束执行
void judge(int i) {
if (i % 5 == 0) {
int flag = JOptionPane.showConfirmDialog(null, "确定要停止?");
if (flag == 0) {
boo = false;
}
}
}
public static void main(String args[]) {
tt t = new tt();
t.start();
// 此处写一个方法停止start的执行
t.restart();// 重新执行start()
}
}
已经给楼主调试并成功运行!
祝楼主早日成功哈!
如果觉得不好也不要见怪噢。。。
备注:接毕业设计,价钱面议!
class tt {
boolean boo;
void start() {
int i = 0;
boo = true;
while (boo) {
try {
i++;
judge(i);// 判断是否结束运行
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println(i);
}
}
void restart() {
start();
}
//每执行5次判断是否结束执行
void judge(int i) {
if (i % 5 == 0) {
int flag = JOptionPane.showConfirmDialog(null, "确定要停止?");
if (flag == 0) {
boo = false;
}
}
}
public static void main(String args[]) {
tt t = new tt();
t.start();
// 此处写一个方法停止start的执行
t.restart();// 重新执行start()
}
}
已经给楼主调试并成功运行!
祝楼主早日成功哈!
如果觉得不好也不要见怪噢。。。
备注:接毕业设计,价钱面议!
展开全部
如果你想控制线程的话 个人建议你最好启动两个线程 一个是用来执行操作的 另一个则是用来控制另外一个线程的 当执行操作的线程停止之后 你可以通过另外一个线程来唤醒该线程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以定义一个属性
boolean flag=true;
void start(){
flag=true;
while(flag){ }
}
void restart(){
flag=false;
start();
}
不过此时就应该要考虑到线程同步的问题了
boolean flag=true;
void start(){
flag=true;
while(flag){ }
}
void restart(){
flag=false;
start();
}
不过此时就应该要考虑到线程同步的问题了
参考资料: `
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赞同1楼的思路.
问题补充:
class tt{
private boolean flag = true;
void start(){
while(flag){
try{
Thread.sleep(1000);
}catch(InterruptedException e) {}
System.out.println(1);
}
}
void restart(){
flag = true;
System.out.println("restart");
start();
}
void stop(){
flag=false;
System.out.println("stop");
}
public static void main(String args[]){
tt t=new tt();
t.start();
//此处写一个方法停止start的执行
t.stop();
t.restart();//重新执行start()
}
}
问题补充:
class tt{
private boolean flag = true;
void start(){
while(flag){
try{
Thread.sleep(1000);
}catch(InterruptedException e) {}
System.out.println(1);
}
}
void restart(){
flag = true;
System.out.println("restart");
start();
}
void stop(){
flag=false;
System.out.println("stop");
}
public static void main(String args[]){
tt t=new tt();
t.start();
//此处写一个方法停止start的执行
t.stop();
t.restart();//重新执行start()
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询