概述
守护线程:
main:{
MyThread t = new MyThread();
t.setName("t");
t.setDaemon(true);//设置为守护线程,主线程结束,t也会结束
t.start();
for (int i = 0;i < 10;i++){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "--->" +i);
}
}
class MyThread extends Thread{
public MyThread() {
}
@Override
public void run() {
int i = 0;
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"--->"+ i++);
}
}
}
定时器:
main:{
Timer timer = new Timer();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date firstTime = null;
try {
firstTime = sdf.parse("2022-10-17 17:46:00");
} catch (ParseException e) {
e.printStackTrace();
}
timer.schedule(new LogTimerTask(),firstTime,1000*10);
}
class LogTimerTask extends TimerTask {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void run() {
//需要执行的任务
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strTime = sdf.format(new Date());
System.out.println(strTime + ":成功完成了一次备份");
}
}
实现线程的第三种方式:
FutureTask task = new FutureTask(new Callable() {
@Override
public Object call() throws Exception {
System.out.println("call method begin");
Thread.sleep(10000);
System.out.println("call method end");
int a = 100;
int b = 200;
return a+b;
}
});
Thread t = new Thread(task);
t.start();
try {
Object obj = task.get();//get()会导致当前线程阻塞
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Hello world!");
最后
以上就是危机白昼为你收集整理的线程其他内容(守护线程、定时器、实现线程的第三种方式的全部内容,希望文章能够帮你解决线程其他内容(守护线程、定时器、实现线程的第三种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复