Thread中常用的方法:
-
Thred.start() / 对象.start()
:调用当前线程中的run() -
Thread.run()
:重写Tread中的run方法,将线程要执行的操作声明在run()中 -
thread.currentThread()
:返回当前代码执行的线程 -
Thread.currentThread().getName() / 对象.getName()
:返回当前线程的名字 -
Thread.currentThread().setName(String str)/ 对象.setName()
: 设置当前线程的名字 -
Thread.currentThread().yield() / 对象.yield()
:释放当前CPU的执行权,执行权会被所有的线程中的一个(包括当前线程)获取 -
Thread.currentThread().join() :会抛异常,要用异常处理来处理一下(try-catch-finally)
/ 对象.join()
:会把CPU的执行权交给调用此方法的线程,直到其执行完 -
Thread.currentThread().stop() / 对象.stop
: 强制结束当前的线程(过时了,不建议使用) -
Thread.sleep(long millitime) :会抛异常,要用异常处理来处理一下(try-catch-finally)
/ 对象.sleep(long millitime)
: 是当前的进程休眠,单位为毫秒。该方法是一个static方法,可以直接使用Thread调用 -
Thread.currentThread().isAlive() / 对象.isAlive()
: 判断当前线程是否存活,返回boolean值
代码:
public class ThreadMethodsTest {
public static void main(String[] args) {
new MyThread2().start(); //Thread.currentThread().getName()
System.out.println(new MyThread1().getName()); 对象.getName()
MyThread2 myThread2 = new MyThread2();
myThread2.setName("这是自定义的Name"); //对象.setName()
System.out.println(myThread2.getName());
}
}
class MyThread2 extends Thread{
@Override
public void run() {//Thread.currentThread().getName(),因为就是在这个线程这种调用的,所以可以省略Thread.currentThread()
System.out.println(getName());
}
}
结果: