文章目录
一、Thread常用API说明
- Thread常用方法:获取线程名称getName()、设置名称setName()、获取当前线程对象currentThread()。
- 至于Thread类提供的诸如:yield、join、interrupt、不推荐的方法stop、守护线程、线程优先级等线程方法,在开发中很少用,这些方法可以自行到高级篇去学习
二、Thread常用方法和构造器
1、常用方法
方法名称 | 说明 |
---|---|
String getName() | 获取当前线程名称,默认线程名称是Thread-索引 |
void setName(String name) | 设置线程名称 |
public static Thread currentThread(); | 返回对当前正在执行的线程对象引用 |
public static void sleep(Long time) | 让线程休眠指定时间,单位为毫秒 |
public void run() | 线程任务方法 |
public void start() | 线程启动方法 |
2、常用构造器
构造器 | 说明 |
---|---|
public Thread(String name) | 可以为当前线程指定名称 |
public Thread(Runnable target) | 把Runnable对象交给线程对象 |
public Thread(Runnable target, String name) | 把Runnable对象交给线程对象,并指定线程名称 |
三、方法使用代码演示
1、getName()、currentThread()和run()方法;
/**
* @Author: {LZG}
* @ClassName: ThreadDemo01
* @Description: TODO
* @Date: 2022/5/9 7:53
**/
public class ThreadDemo01 {
public static void main(String[] args) {
Thread thread1=new MyThread();
Thread thread2=new MyThread();
// 调用getName()获取当前线程的名称
System.out.println("thread1的名称是:"+thread1.getName());
System.out.println("thread2的名称是:"+thread2.getName());
// 调用currentThread()获取当前线程
Thread mainThread = Thread.currentThread();
System.out.println("主线程的名称是:"+mainThread.getName());
}
}
class MyThread extends Thread{
// 线程任务方法:此例子:线程任务就是for循环
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("子线程输出"+i);
}
}
}
运行结果
2、setName(String name)和start()方法
/**
* @Author: {LZG}
* @ClassName: ThreadDemo01
* @Description: TODO
* @Date: 2022/5/9 7:53
**/
public class ThreadDemo02 {
public static void main(String[] args) throws Exception{
Thread thread1=new MyThread02();
Thread thread2=new MyThread02();
// 调用setName(String name)设置线程名称
thread1.setName("子线程1号");
thread2.setName("子线程2号");
// 调用getName()获取当前线程的名称
System.out.println("thread1的名称是:"+thread1.getName());
System.out.println("thread2的名称是:"+thread2.getName());
// 调用currentThread()获取当前线程
Thread mainThread = Thread.currentThread();
mainThread.setName("我是最厉害的主线程");
System.out.println("主线程的名称是:"+mainThread.getName());
// 调用start()线程方法
thread1.start();
thread2.start();
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()+"的输出"+i);
}
}
}
class MyThread02 extends Thread{
// 线程任务方法
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()+"的输出"+i);
}
}
}
运行结果
3、sleep(Long time)方法
/**
* @Author: {LZG}
* @ClassName: ThreadDemo03
* @Description: TODO
* @Date: 2022/5/9 8:14
**/
public class ThreadDemo03 {
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 5; i++) {
System.out.println("输出:"+i);
if (i==3){
Thread.sleep(5000);
}
}
}
}
运行结果