1.后台线程(也是守护线程)
package com.bailing;
/**
后台线程:(守护线程)
1.如果最后只剩下一个线程了是后台线程,程序结束了,后台线程也就销毁了
*/
public class shouhuThread extends Thread {
//调用父类的方法
public shouhuThread(String name){
super(name);
}
//重写run方法
@Override
public void run() {
//设置了一个延时操作了
try {
Thread.sleep(100);
}catch (InterruptedException e){
e.printStackTrace();
}
for (int i = 0; i <100 ; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
public static void main(String[] args) {
//创建对象
shouhuThread shouhuThread = new shouhuThread("线程");
//设置守护线程
shouhuThread.setDaemon(true);
//判断当前的线程是不是有守护线程
System.out.println(shouhuThread.isDaemon());
//开启线程
shouhuThread.start();
//当这个设置为了守护线程,当线程变成了最后一个守护线程,程序马上结束了
for (int i = 0; i <100 ; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
2.Join方法 (加入线程的方法)
package com.bailing;
/**
Join线程的使用方法:
1.当线程是join方法的时候,他会等待加入的线程先执行完,然后在执行其他的线程
*/
public class JoinThread extends Thread
{
//调用父类的方法
public JoinThread(String name){
super(name);
}
@Override
public void run() {
//睡眠下
try {
Thread.sleep(100);
}catch (Exception e){
e.printStackTrace();
}
for (int i = 0; i <100 ; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
public static void main(String[] args) {
//创建对象
JoinThread joinThread = new JoinThread("Join线程");
joinThread.start();
//主线程的代码
for (int i = 0; i <100 ; i++) {
if (i == 50){
try {
//join加入的方法
joinThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。