“这是我参与8月更文挑战的第27天,活动详情查看: 8月更文挑战”
写在前言
本篇主要介绍Thread的常用方法。如果有兴趣的话,掘友们可以通过传送门来看我之前对多线程的一些浅见。(传送门1)(传送门2)
Thread常用方法
Thread常用方法:获取线程名称
每个线程都有一个标识名,多个线程可以同名。如果线程创建时没有指定标识名,就会为其生成一个新名称。
获取线程的名称有两种方法分别是:
-
1.使用Thread类中的方法getName()
string getName()返回该线程的名称。
-
2.可以先获取到当前正在执行的线程,使用线程中的方法getName()获取线程的名称
static Thread currentThread ()返回对当前正在执行的线程对象的引用。
来看一下具体例子:
直接使用getname方法
String name = getName();
System.out.println(name);
使用currentThread方法获取当前执行的线程
Thread thread = currentThread();
String name1 = thread.getName();
System.out.println(name1);
上面三条语句可以直接写成一条
链式编程
System.out.println(Thread.currentThread().getName());
Thread常用方法:设置线程名称
设置线程的名称也有两种方法:(了解)
-
1.使用Thread类中的方法setName(名字)
void setName(String name)改变线程名称,使之与参数name 相同。
-
2.创建一个带参数的构造方法,参数传递钱线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字
Thread(string name)分配新的Thread 对象。
来看具体实例:
首先创建Thread类的子类,重写run方法
public class MyThread extends Thread{
public MyThread(){}
//带参构造方法
public MyThread(String name){
//调用父类带参构造方法
super(name);
}
//重写run方法
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
在测试类中创建对象
public class MyThreadTest {
public static void main(String[] args) {
MyThread mt = new MyThread();
//直接设置线程名称
mt.setName("小明");
mt.start();
//创建含参对象
MyThread mt2 = new MyThread("小红");
mt2.start();
}
}
Thread常用方法:sleep
public static void sleep(Long millis):
使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行》。毫秒数结束之后,线程继续执行
我们通过一个小案例来了解sleep方法;
要求:模拟秒表:每过一秒钟打印一个数,从1打印到60.
for (int i = 1; i <= 60; i++) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
写在最后
好了,关于Thread的常用方法我们就一起学习到这里,如果感觉有帮助不妨留个赞吧!
以上内容如有不正之处,欢迎掘友们批评指正。