用户线程:
// 当一个线程没有运行完成的时候,JVM是不会主动关闭该线程的.这种线程称为用户线程
// 也就是说:只要用户线程没有运行完成,JVM是不会主动关闭的(线程默认是用户线程)
// 主线程解除阻塞状态,重新回到就绪队列
// 换句话说:只要线程没有运行完成,则主线程永远不会执行
// 当一个线程没有运行完成的时候,JVM是不会主动关闭该线程的.这种线程称为用户线程
// 也就是说:只要用户线程没有运行完成,JVM是不会主动关闭的(线程默认是用户线程)
main方法:
public class Main {
public static void main(String[] args) {
UserThread ut = new UserThread();
}
}
线程1:
public class UserThread extends Thread {
public UserThread() {
start(); // 创建好线程对象之后,该线程自动进入就绪队列
}
public void run() {
for (;;) {
System.out.println("==================================");
}
}
}
守护线程:
// 当JVM发现只有守护线程在运行的时候,JVM会主动的关闭守护线程,然后关闭JVM
// 也就是说:JVM是不让守护线程一直运行的
main方法:
public class Main {
public static void main(String[] args) {
// 线程对象创建好之后,默认的都是用户线程
DaemonThread dt = new DaemonThread();
// 把用户线程标记为守护线程
dt.setDaemon(true);
dt.start();
try {
Thread.sleep(1000);//若不sleep()则会直接关闭不输出
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
线程1:
public class DaemonThread extends Thread {
public DaemonThread() {
}
public void run() {
for (int i = 1; i <= 10000000; i++) {
System.out.println("==================================i=" + i);
}
}
}
线程的join()方法:
// 主线程解除阻塞状态,重新回到就绪队列
// 换句话说:只要线程没有运行完成,则主线程永远不会执行
main方法:
public class MainThread {
private static String[] arr = new String[50000];
public static void main(String[] args) {
// 我们先创建初始数组的线程 ,只有当初始化数组的线程把数组初始化完成之后,才能在主线程中打印数组元素
InitThread t1 = new InitThread(arr);
try {
// 我们在主线程中调用了t1线程的join()方法.则主线程会被阻塞.直到t1线程运行完之后
// 主线程解除阻塞状态,重新回到就绪队列
// 换句话说:只要t1线程没有运行完成,则主线程永远不会执行
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 在主线程中打印数组元素
for (int i = 0; i < arr.length; i++) {
System.out.println("在主线程中打印数组元素:arr[" + i + "]=" + arr[i]);
}
}
}
线程1:
// 初始化数组的线程
public class InitThread extends Thread {
private String[] arr;
public InitThread(String[] arr) {
this.arr = arr;
start();
}
public void run() {
for (int i = 0; i < arr.length; i++) {
String str = "Hello-" + i;
arr[i] = str;
System.err.println("初始化线程在初始化数组元素: arr[" + i + "]=" + arr[i]);
}
}
}
希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充;转载请注明出处!