JAVA线程状态图

1.C++/windows中主线程结束,其他线程必然死亡(即使调用pthread_detach解除父子关系,主线程消亡时也会导致子线程被迫关闭)。

----1.1 一个进程中可以有很多的线程,可以在主线程上创建一个新线程(A),而在这个新线程(A)中可以再创建别的线程。这样的话,线程之间就可以层层嵌套;

CreateTread()函数中就有一个参数可以指定创建线程的入口(就是可以自定义一个线程启动入口),

----1.2 当父线程消亡的时候,子线程是不会消亡的,是会继续执行到结束的;

----1.3 当主线程消亡的时候,所有线程都得死。

2.Java中线程分为守护线程(如垃圾回收线程)和非守护线程(默认为非守护线程/用户线程),通过              setDaemon(true)方法将非守护线程变为守护线程;

----2.1默认情况下主线程结束,子线程未结束时,程序不结束;

package base;class ThreadTest extends Thread {ThreadTest() {super("Demo Thread");System.out.println("Child thread: " + this);start();}@Overridepublic void run() {try {for (int i = 5; i > 0; i--) {System.out.println("Child Thread: " + i);Thread.sleep(50);}} catch (InterruptedException e) {System.out.println("Child Interrupted.");}System.out.println("Exiting child thread.");}
}
//NOTE:主线程退出之后子线程仍然可以继续运行
//NOTE:非守护线程
public class NewThread {public static void main(String[] args) {new ThreadTest();System.out.println("Main thread exiting.");}
}

结果如下图所示:

----2.2当子线程为守护线程时,主线程结束则其他子线程也结束,程序结束;

class ThreadTest extends Thread {ThreadTest() {super("Demo Thread");System.out.println("Child thread: " + this);//将子线程t设置为守护线程setDaemon(true); start();}@Overridepublic void run() {try {for (int i = 5; i > 0; i--) {System.out.println("Child Thread: " + i);Thread.sleep(50);}} catch (InterruptedException e) {System.out.println("Child Interrupted.");}System.out.println("Exiting child thread.");}
}
//NOTE:主线程退出之后子线程仍然可以继续运行
//NOTE:非守护线程
public class NewThread {public static void main(String[] args) {new ThreadTest();System.out.println("Main thread exiting.");}
}

结果如下图所示:

两个区别在于

  1. JVM会在所有的非守护线程(用户线程)执行完毕后退出;
  2. main线程是用户线程;
  3. 仅有main线程一个用户线程执行完毕,不能决定JVM是否退出,也即是说main线程并不一定是最后一个退出的线程。

转载于:https://www.cnblogs.com/jadeshu/p/10663606.html

C++/Java线程之分相关推荐

  1. java线程之InheritableThreadLocal

    ThreadLocal和InheritableThreadLocal区别,可以用代码测试一下: [java] view plain copy package com.lang; import juni ...

  2. Java线程之Synchronized用法

    synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对 ...

  3. (JAVA)线程之lock和死锁(例)

    package thread; import java.util.concurrent.locks.*;/*** @author Alina* @date 2021年12月20日 11:07 下午* ...

  4. Java线程之CompletionService批处理任务

    如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果,怎么办呢? 为此你可以保存与每个任务相关联的Future,然后不断地调用 timeout为零的get,来检验Future是否 ...

  5. Java线程之CompletionService

    当使用ExecutorService启动了多个Callable后,每个Callable会产生一个Future,我们需要将多个Future存入一个线性表,用于之后处理数据.当然,还有更复杂的情况,有5个 ...

  6. Java线程之setDaemon(true)方法的作用

    一.线程 JAVA线程分为即实线程与守护线程,守护线程是优先级低,存活与否不影响JVM的退出的线程,实现守护线程的方法是在线程start()之前setDaemon(true),否则会抛出一个Illeg ...

  7. java线程之List集合并发安全问题及解决方案

    一.问题代码 任务:执行10轮次,使用多线程,给list集合添加元素,查看每次执行的结果. public static void main(String[] args) throws Interrup ...

  8. JAVA线程之Thread类详解

    Thread类用于操作线程,是所以涉及到线程操作(如并发)的基础.本文将通过源码对Thread类的功能作用进行分析. 一.属性 /* Make sure registerNatives is the ...

  9. Java线程之join

    简述 Thread类的join方法用来使main线程进入阻塞状态,进而等待调用join方法的线程执行,join有三个重载方法: public final void join() 使主线程进入阻塞状态, ...

最新文章

  1. Oracle计算时间差表达式
  2. InetAddress类和InetSocketAddress的使用
  3. linux c 获取 进程 线程 id
  4. 在html中取消或加上超链接的下划线
  5. Linux与Windows比较出的20个优势
  6. 笔记本电脑排名2015_2015-2026全球及中国AC-DC电源适配器市场发展现状调研及未来前景行业展望...
  7. 从零开始用好 Maven : 从 Hello World 到日常使用
  8. jQuery.fn.extend 与 jQuery.extend 用法
  9. Mac OS X 系统修改Terminal终端配色
  10. JAVA interface报错:abstract methods do not specify a body
  11. 福州大学计算机科学与技术 何x玲,吴伶 - 福州大学 - 数学与计算机科学学院
  12. 怎么给计算机管理设置密码,如何给电脑设置密码
  13. 雅诗兰黛公司宣布Michelle Freyre将被任命为倩碧高级副总裁、全球总经理
  14. 邮箱发信量到达上限,发不出邮件,你知道该怎么办吗?
  15. 【三年前端开发的思考】如何有效地阅读需求?
  16. ChatGPT 是传统搜索引擎的终结?——Web3 创新 | Is ChatGPT The End Of Traditional Search Engines—Web3 Innovation
  17. 32、Java——迷你图书管理器(对象+JDBC)
  18. RK3288 编译不过遇到的问题
  19. 企业如何与客户建立良好的客户关系
  20. 阿里百秀移动端首页案例

热门文章

  1. C# 或Asp.Net 将excel表格导入数据库
  2. 深入浅出VC++串口编程--短信应用开发
  3. python画图代码的输入数据可以取出来_用Python写了个小程序:最小二乘法、读取文件、作图以及数据输出到文件...
  4. Python中的中文编码声明注释
  5. Markdown--Latex数学公式编辑
  6. CentOs基础操作指令(用户管理、组管理)
  7. 什么样的产品可以成功?
  8. Qt 中获取三种坐标类型
  9. 复旦计算机转专业面试问题,转专业最容易的6所985大学,清华大学第4,复旦大学第3,这所第一...
  10. access 动态 top 条件_2020年10月抖音直播营销报告_行业动态