Thread.currentThread()方法
  Thread.currentThread()可以获取当前线程的引用,一般都是在没有线程对象又需要获得线程信息时通过Thread.currentThread()获取当前代码段所在线程的引用。
  
  getId();获取该线程的标识符
  getName();获取该线程名称
  getState();获取线程状态
  boolean isAlive();测试线程是否属于活动状态
  boolean isDaemon();测试线程是否为守护线程
  boolean isInterrupted();测试线程是否已经中断

public class Demo_1 {public static void main(String[] args){MyThread myThread = new MyThread();myThread.setName("A");myThread.start();}
}class MyThread extends Thread {public MyThread(){System.out.println("------" + "构造函数开始" + "------");System.out.println("Thread.currentThread().getName() = " + Thread.currentThread().getName());System.out.println("Thread.currentThread().getId) = " + Thread.currentThread().getId());System.out.println("Thread.currentThread().isDaemon() = " + Thread.currentThread().isDaemon());System.out.println("Thread.currentThread().isInterrupted()= " + Thread.currentThread().isInterrupted());System.out.println("Thread.currentThread().getState() = " + Thread.currentThread().getState());System.out.println("Thread.currentThread().isAlive() = " + Thread.currentThread().isAlive());   System.out.println("------" + "构造函数结束" + "------");}@Overridepublic void run(){System.out.println("------" + "run()开始" + "------");System.out.println("Thread.currentThread().getName() = " + Thread.currentThread().getName());System.out.println("Thread.currentThread().getId() = " + Thread.currentThread().getId());System.out.println("Thread.currentThread().isDaemon() = " + Thread.currentThread().isDaemon());System.out.println("Thread.currentThread().isInterrupted() = " + Thread.currentThread().isInterrupted());System.out.println("Thread.currentThread().getState() = " + Thread.currentThread().getState());System.out.println("Thread.currentThread().isAlive() = " + Thread.currentThread().isAlive());System.out.println("------" + "run()结束" + "------");}
}

运行结果:

守护线程

守护线程与普通线程表面上并没有什么区别,只需要通过Thread类提供的方法设置即可。
   void setDaeMon(boolean c)方法
   当参数为true时,该线程为守护线程
 守护线程的特点:
   当线程中只剩下守护线程时,所有守护线程终止
   GC就是运行在一个守护线程上
    注意:设置线程为守护线程,要在该线程启动前设置

import java.io.IOException;public class Demo_1 {public static void main(String[] args){MyThread myThread = new MyThread();myThread.setDaemon(true);    myThread.start();try {System.in.read();   // 接受输入,使程序在此停顿,一旦接收到用户输入,main线程结束,守护线程自动结束} catch (IOException ex) {}}}class MyThread extends Thread {@Overridepublic void run(){System.out.println("Thread.currentThread().isDaemon() = " + Thread.currentThread().isDaemon());}}

Thread.currentThread()方法、进程、线程、多线程相关总结(二)相关推荐

  1. 易语言多线程大漠多线程进程线程多线程

    进程-线程-多线程 1.进程(process) 狭义定义:进程就是一段程序的执行过程 简单的来讲进程的概念主要有两点: 第一,进程是一个实体.每一个进程都有它自己的地址空间,一般情况下,包括文本区域( ...

  2. 程序-进程-线程 ( 多线程 )

    1.程序 (program) 是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态的对象. 2.进程 (process) 是程序的一次执行过程,或是正在运行的一个程序.动态过程: ...

  3. Python_进程/线程/多线程理解

    目录 进程.线程.多线程: 1.进程与线程区别 (1)进程与线程区别 (2)多进程与多线程区别 (3)更多区别 2. 进程简单理解 3. 线程简单理解 进程.线程.多线程: 进程:资源分配的最小单位. ...

  4. 【Java】多线程相关复习—— 线程的创建、名字、运行情况以及顺序控制(join方法) 【一】...

    一.创建线程的三种方式 · 继承Thread类 · 实现Runnable接口 · 实现Callable接口 二. 线程状态 · 线程名字 getName() · 线程活动情况 isAlive() · ...

  5. Java/Android 进程与线程之 多线程开发(二)

    多线程开发 Java多线程开发 1.线程状态 线程阻塞 线程协作 作用 **wait() / notify** **join()** **Thread.sleep()** wait 与 sleep 的 ...

  6. 多线程的三种实现方法、线程类的常见方法、线程安全问题:synchronized和Lock锁、生产者和消费者问题

    1. 多线程的三种实现方式 1.1 继承Thread类 实现步骤: 定义一个类MyThread继承Thread类 在MyThread类中重写run()方法 创建MyThread类的对象 启动线程sta ...

  7. 线程的常用方法——currentThread方法||在main方法中直接调用run()方法,没有开启新的线程,以在run方法中的当前线程就是main线程||启动子线程,子线程会调用run方法

    线程的常用方法--currentThread方法 Thread.currentThread()方法可以获得当前线程 Java 中的任何一段代码都是执行在某个线程当中的. 执行当前代码的线程就是当前线程 ...

  8. 第十章 进程间的通信 之 Java/Android多线程开发(二)

    文章目录 (一)Java 多线程开发 1.1)线程状态 1.2)线程控制方法 (1.2.1)Synchronized (1.2.2)Volatile (1.2.3)ReentrantLock 1.3) ...

  9. JAVA并发与多线程相关面试题总结

    JAVA并发与多线程相关面试题总结 1.什么是进程.线程.协程,它们之间的关系是怎样的? 进程: 本质上是一个独立执行的程序,是计算机中的程序关于数据集合上的一次运行活动,进程是操作系统进行资源分配和 ...

  10. java线程方法_Java线程的三种方式

    创建线程有三种方式: 1.继承Thread类 2.实现Runnable接口 3.使用Callable和Future创建线程 三种方式详解如下: ---------------------------- ...

最新文章

  1. let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var
  2. 4.11-固件映像包 ( FIP:Firmware Image Package )简介
  3. 巧用词语角色:基于目标自适应图的跨目标立场检测
  4. 启动/删除Docker容器时出现问题 - 如何修复
  5. Plugin [id: 'org.jetbrains.kotlin.jvm'] was not found in any of the following sources:
  6. windows-7:系统利用终端cmd命令关机
  7. python语言的特点强制可读_python程序语言设计第二讲(笔记)
  8. 我的2017:从工作再到学生
  9. ActiveMQ(三)——JMS消息结构、JMSReplyTo、面试题(消息丢失,消息重复,消息顺序)
  10. 批发企业如何使用订单软件app管理账目混乱问题
  11. 鞋城模板+html,西安锦绣鞋城整合营销策划方案
  12. 人件札记:软件开发的管理思想
  13. 汉字录入到计算机的过程,如何快速把书中文字录入到电脑中
  14. http 高级配置 虚拟主机,https 编译安装
  15. 30天Python基础(正则表达式)
  16. 我的知识星球 -【达叔与他的朋友们】程序员
  17. scum服务器里找不到车,人渣SCUM车辆机制介绍 人渣SCUM车辆为什么消失
  18. JDBC :java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES) 数据库登录正常
  19. getAnnotation(Class.class) 为空问题
  20. 当我们说“嘿,siri”时,会发生什么?

热门文章

  1. Linux 静态库和动态库的生成及使用
  2. 【100%通过率】华为OD机试真题 Python 实现【预订酒店】【2022.11 Q4 新题】
  3. java 队列线程池_Java线程池Executor使用
  4. ElementUI分页组件+Vue
  5. <a>链接下载视频 而不是打开新页面播放
  6. 倪衡:大数据时代小微企业质量管理创新
  7. python matplotlib plt 画图总结
  8. Photoshop脚本 合并所有图层
  9. DeepLearning4j-使用Java训练YOLO模型
  10. 网上订货系统助力传统生意数字化转型,5分钟拥有手机订货商城