首页 > 编程语言 >Java 多线程例子2 前台线程(用户线程) 后台线程(守护线程 ) setDaemon

Java 多线程例子2 前台线程(用户线程) 后台线程(守护线程 ) setDaemon

时间:2023-10-20 11:01:26浏览次数:27  
标签:main Java Thread 线程 多线程 true public TestThread


1,setDaemon(true)后就是后台线程(守护线程 ),反之就是前台线程(用户线程)

2,后台线程 和 前台线程的区别:在java程序中如果所以的前台线程都已经退出,所有的后台线程自动退出。

TestThread为后台线程:

public class ThreadDemo {
	public static void main(String[] args) {
		Thread t = new TestThread();
		t.setDaemon(true);
		t.start();
//		while(true) {
//			System.out.println("main(): "+Thread.currentThread().getName() + " is running");
//		}
	}
}

class TestThread extends Thread {
	public void run() {
		while(true) {
			System.out.println("TestThread: "+Thread.currentThread().getName() + " is running");
		}
	}
}

 运行当前台线程main退出后自动退出。

TestThread和main一样也是前台线程:

public class ThreadDemo {
	public static void main(String[] args) {
		Thread t = new TestThread();
//		t.setDaemon(true);
		t.start();
//		while(true) {
//			System.out.println("main(): "+Thread.currentThread().getName() + " is running");
//		}
	}
}

class TestThread extends Thread {
	public void run() {
		while(true) {
			System.out.println("TestThread: "+Thread.currentThread().getName() + " is running");
		}
	}
}

 

TestThread 就不会退出。

也就是说,所有的前台线程结束后,所有的后台线程会自动退出。

标签:main,Java,Thread,线程,多线程,true,public,TestThread
From: https://blog.51cto.com/u_16298170/7947924

相关文章

  • java集合框架及其特点
    常见的集合以及他们的特点有哪些呢java集合类主要由Collection和Map两个根接口派生出来的。Collection派生了List,Set,Queue这三个子接口。1、List代表有序可重复集合,可直接根据元素的索引来访问。ArrayList:排列有序,可重复底层使用数组速度快,增删慢线程不安全容量不够......
  • Java生态系统的进化:从JDK 1.0到今天
    文章目录JDK1.0:开启Java时代JDK1.1:Swing和内部类JDK1.2:Collections框架和JIT编译器JDK1.5:引入泛型和枚举JDK1.8:Lambda表达式和流JDK11以后:模块化和新特性未来展望1.云原生和容器化2.更好的性能和效率3.更强大的库和框架4.语言改进结论......
  • 【Java 进阶篇】使用 JDBC 更新数据详解
    在关系型数据库中,更新数据是一项常见的任务。通过JavaJDBC(JavaDatabaseConnectivity),我们可以使用Java编程语言来执行更新操作,例如修改、删除或插入数据。本文将详细介绍如何使用JDBC来进行数据更新操作,包括示例代码和必要的概念。JDBC更新操作概述在JDBC中,更新操作通常分为以下......
  • JS加密:JavaScript代码加密混淆
    JS加密,即JavaScript代码加密混淆,是指对js代码进行数据加密、逻辑混淆。使js代码不能被分析、复制、盗用,以达到保护js代码、保护js产品、保护js知识产权的目的。JS加密定义JS加密,即:JavaScript代码加密混淆、JavaScript代码混淆加密。JavaScript,简称JS,加密指对JS代码进行密文化处理......
  • Java基础的变量与常量
    1.编写第一个Java程序使用IDEA进行编写java程序1publicclassHello{2publicstaticvoidmain(String[]args){3System.out.print("HelloWorld");4}5}第一行:public class是定义类的关键字固定写法,Hello表示类名要与文件中的名字相同第......
  • android 升级到java11,升级到androidx的操作方法
    androidstudioAndroid9(28)升级到Android10(29)Androidx小计_sdk29对应依赖androidx.appcompat:appcompat-resources是-CSDN博客java.lang.NoClassDefFoundError:Failedresolutionof:Landroidx/appcompat/R$drawable;-简书(jianshu.com)......
  • java课后动手动脑
    动手动脑Ⅰpackageorg.example;importjava.util.Scanner;importjavax.swing.*;publicclassMain{publicstaticvoidmain(Stringargs[]){inti=1,j=0,k;k=i/j;try{k=i/j;//Causesdivision-......
  • JAVA项目中的常用的异常处理情况
    https://www.cnblogs.com/gothic-death/p/9946415.html在说java异常处理情况之前简单说下:java中异常的定义。java程序在运行时出现的不正常情况称之为异常。为了防止此类情况发生后及时处理该异常,java将所有可能发生异常的情况用类的形式进行描述和封装。描述不正常情况的类称为......
  • 线程
    2023.10.191.在java中线程是有分优先等级的,可以用setPriority()设置2.Thread实现了Runnable接口是一个类不是接口3.实现多线程的三种方式,一种是继承Thread类使用此方式就不能继承其他的类了。还有两种是实现Runnable接口或者实现Callable接口......
  • Java读取本地文件内容
    Stringpath="C:\\Users\\86175\\Desktop\\ss.txt";try{//创建FileReader对象来读取文件FileReaderfileReader=newFileReader(path);//创建BufferedReader对象来读取文件内容BufferedReaderbufferedRea......