Java Thread 类和Runnable 接口详解
作者:姚青& 发布时间:2023-11-10 20:16:00
标签:Java,Thread,类,Runnable,接口
一、Thread 类
了解如何使用Thread 类实现多线程之后,继续学习Thread 类实现多线程之后的相关功能及方法。
1、操作线程名称的方法
构造方法(实现 Runnable 接口时候使用)
public Thread(Runnable target,String name); 创建线程时设置线程名称。
成员方法:
public final void setName(String name); 设置线程的名称。
public final String getName(); 获取线程的名称。
Demo 代码示例:
public class TestThread extends Thread{
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("我正在编写多线程代码"+ i);
}
}
//程序主线程 main 线程
public static void main(String[] args) {
//创建子类对象
TestThread thread = new TestThread();
// 设置线程名称
thread.setName("姚青新创建的线程");
//调用 start() 方法开启线程
thread.start();
for (int i = 1; i <= 10; i++) {
System.out.println("我正在学习多线程"+ i);
}
// 获取线程名称
System.out.println(thread.getName());
}
}
运行结果:
2、获取当前正在执行的线程
public static Thread currentThread(); 返回当前正在执行的线程对象
获取当前线程对象:Thread.currentThread();
获取当前线程对象名称 :Thread.currentThread().getName();
Demo代码示例:
public class TestThread extends Thread{
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("我正在编写多线程代码"+ i);
}
// 获取start()方法创建出来的线程对象
System.out.println(Thread.currentThread());
// 获取start()方法创建出来的线程对象名称
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
TestThread thread = new TestThread();
thread.setName("姚青新创建的线程");
thread.start();
for (int i = 1; i <= 5; i++) {
System.out.println("我正在学习多线程"+ i);
}
//System.out.println(thread.getName());
// 获取main()主线程对象名称
System.out.println(Thread.currentThread().getName());
}
}
运行结果:
通过运行结果可以发现,在控制台上分别打印出了 “main”、“Thread[姚青新创建的线程,5,main]”、“姚青新创建的线程”,可以看出将新创建的线程对象和对象名称以及主方法的线程名称都打印出来了。
在使用这个方法的时候需要注意一点,该方法固定的写法就是 Thread.currentThread(); 放在那个线程中执行这个方法就是指定的那个线程。
来源:https://blog.csdn.net/shiyu_951/article/details/126226538


猜你喜欢
- springboot 高版本后不支持log4j了,很多人还是喜欢log4j风格的日志,我们自己来加载log4j,其实
- 前言SpringBoot是Spring的包装,通过自动配置使得SpringBoot可以做到开箱即用,上手成本非常低,但是学习其实现原理的成本
- 本文为大家分享了C#导入导出Excel数据的具体代码,供大家参考,具体内容如 * :对于实体类对象最好新建一个并且继承原有实体类,这样可以将类
- 本文实例为大家分享了android实现简单仪表盘效果的具体代码,供大家参考,具体内容如下实现这个效果:中间的文字很好写,外层的进度条就需要自
- 什么是死锁我们先看看这样一个生活中的例子:在一条河上有一座桥,桥面较窄,只能容纳一辆汽车通过,无法让两辆汽车并行。如果有两辆汽车A和B分别由
- 今天,简单讲讲如何监听手机屏幕是否锁屏。实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN
- Java Collection API提供了一些列的类和接口来帮助我们存储和管理对象集合。其实Java中的集合工作起来像是一个数组,不过集合
- 创建两个场景同时赋值StaticVarious 脚本 然后按键好,H ,J 进行不断切换场景,会发现unity 控制台输出数字不断增加,然后
- 本文为大家分享了Android Studio3安装图文教程,供大家参考,具体内容如下Android Studio及其相关资源下载地址:dow
- 1. 什么是单例模式单例模式指的是在应用整个生命周期内只能存在一个实例。单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的
- 前言Android 8.0系统更新之后,app的更新将不再像之前的系统版本一样能够直接下载安装包之后直接安装(以前安装未知来源应用的时候一般
- 随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的。所以我们来一步一步的实现基于RocketMQ的分布式事务。接下来,我们
- 常见Bean后处理器的作用:public static void main(String[] args) { &
- SQLite 数据库简介SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本
- 一、隐藏标题栏 //隐藏标题栏 &
- 一、题目描述题目实现:在进行网络编程时,由于进行网络连接是比较消耗资源的,因此,可以对连接的等待时间进行设置,如果在规定的时间没有进行连接,
- 前言默认删除文件的时候 File.Delete 是将文件永久删除,如果是一些文档,建议删除到回收站,这样用户可以自己还原 通过 SHFile
- Mybatis 入参方式单个基本类型或 String 参数在 mapper 文件中随便写<select id=""
- Druid是数据库连接池,它能够提供强大的监控和扩展功能。官方文档Spring Boot整合第三方技术的两种方式:自定义找starter场景
- 本文实例讲述了C#中参数个数可变的方法。分享给大家供大家参考。具体方法如下:要实现C#中参数个数可变关键是使用params关键字。并且,可变