java线程的重启(java线程执行完会自动关闭吗)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
本篇文章给大家谈谈java线程的重启,以及java线程执行完会自动关闭吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
java 多线程 重启
您好,线程停止了就结束了,所以你若想让你一个线程停止了又能再重新开始,那只能让这个线程sleep。
如下一段代码就可以实现你的需求了,希望你能看懂!!
package com.lxh.baidu;
public class ThreadRestart extends Thread {
private static int i = 0;
@Override
public void run() {
while(true) {
// 这里用来判断线程是否继续停止,不执行代码逻辑
if(i == 1) {
try {
sleep(100);
System.out.println("........");
continue;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 假设这是你线程中的一段逻辑
{
System.out.println("Happy Happy....");
}
}
}
public static void main(String[] args) throws Exception {
ThreadRestart threadTest = new ThreadRestart();
threadTest.start();
for (int j = 0; j 20; j++) {
// 假设执行如下一段代码逻辑时,让线程threadTest执行
{
i = 0;
Thread.sleep(2000);
}
// 假设执行如下的一段代码逻辑后,让线程threadTest停止执行
{
i = 1;
Thread.sleep(2000);
}
}
// 退出整个程序
System.exit(0);
}
}

java线程发生异常时怎么重新启动这个线程
1.主线程写个循环3次的循环
2.循环体内运行线程,运行完以后调用wait()等待
3.线程在运行,如果出异常notifyAll()唤醒主线程继续循环
在java中什么办法可以让线程停止然后再重新启动它
1.你可以用布尔值来控制是否让线程运行。例:while(boolean isLive){} 当isLive为true线程就运行,否则不运行。
2.你可以用对象。例:while(Object o != null)当对象存在的时候线程就运行,否则不运行!
3.你可以用wait()方法来让线程等待,然后用notify()、notifyAll()在适当的时候唤醒线程、或者唤醒所有在些等待的线程!
例:一个挺不错的例子---吃馒头和做馒头。
一个线程做馒头,做好了放在篮子里(容量为10)。
一个线程吃馒头,从篮子里拿馒头吃(如果篮里有馒头)。
还有一点就是为了看到明显的等待效果,用一个随机数来决定做和吃的速度。这样就不会行成做一个,吃一个,篮子永远装不满的不理想效果!(最好就是做稍快于吃)
这时,当篮子满了,你就应该调用wait()方法来让做的线程等待,让吃的线程将篮子腾出空间放馒头。同时,吃的线程也应该通知做的线程可以做馒头了(就应该调用notify()来唤醒做的线程)。
这个例子应该就是你想要的“停止”后再重新启动吧!
如果你说的是完全停止(死了),那就不行了!
JAVA 线程重新启动问题
这个run函数的主体是一个while循环,既然没有break语句,那线程就不会结束。捕获异常以后会继续下一次循环。
更不需要start,因为已经start了。。。
java中如何启动一个新的线程
java开启新线程的三种方法:
方法1:继承Thread类
1):定义一个继承自Java.lang.Thread类的类A.
2):覆盖A类Thread类中的run方法。
3):我们编写需要在run方法中执行的操作:run方法中的代码,线程执行体。
4):在main方法(线程)中,创建一个线程对象并启动线程。
(1)创建线程类对象:
A类 a = new A类();
(2)调用线程对象的start方法:
a.start();//启动一个线程
注意:不要调用run方法。如果run方法被称为对象调用方法,则仍然只有一个线程,并且没有启动新线程。
创建启动线程实例:
方法2:实现Runnable接口
1):定义要在java.lang.Runnable接口中实现的类A.请注意,A类不是线程类。
2):覆盖A类Runnable接口中的run方法。
3):我们编写需要在run方法中执行的操作:在run方法中,线程执行。
4):在main方法(线程)中,创建一个线程对象并启动线程。
(1)创建线程类对象:
Thread t = new Thread(new A());
(2)调用线程对象的start方法:
t.start();
代码实例:
方法3:直接在函数体使用
扩展资料:
启动新线程的两种方式对比
继承方式:
1):从设计上分析,Java中类是单继承的,如果继承了Thread了,该类就不能再有其他的直接父类了.
2):从操作上分析,继承方式更简单,获取线程名字也简单.(操作上,更简单)
3):从多线程共享同一个资源上分析,继承方式不能做到.
实现方式:
1):从设计上分析,Java中类可以多实现接口,此时该类还可以继承其他类,并且还可以实现其他接口,设计更为合理.
2):从操作上分析,实现方式稍微复杂点,获取线程名字也比较复杂,得使用Thread.currentThread()来获取当前线程的引用.
3):从多线程共享同一个资源上分析,实现方式可以做到(是否共享同一个资源).
补充:实现方式获取线程名字:
String name = Thread.currentThread().getName();
关于java线程的重启和java线程执行完会自动关闭吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
