在Java中,线程使用Thread关键字来表示。所有线程对象,都必须来自Thread类或者Thread类子类的实例,所以掌握Thread类的常用方法就显得尤为重要。
静态方法
静态方法可以直接通过Thread.来调用
1.currentThread()
Thread.currentThread()方法会返回对当前正在执行的线程对象的引用。
2.activeCount()
Thread.activeCount() 方法会返回活动线程的当前线程的线程组中的数量。
3.interrupted()
测试当前线程是否中断,返回值类型为boolean类型。
4.sleep(long millis)
使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。
睡眠期间会让出CPU的执行权,CPU去执行其它线程,但是同时会继续监视睡眠的时间。需要的注意的是就算线程的睡眠时间到了,它也不会被立即运行,只是会从睡眠状态变为了可运行状态,而不是由睡眠状态直接变为运行状态的。
5.sleep(long millis, int nanos)
线程睡眠 millis 毫秒 + nanos 纳秒
6.yield()
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。
跟sleep()方法一样,会让出CPU的执行权,但不会释放锁。
跟sleep()方法不同的是:yield方法只能让拥有相同优先级的线程有获取CPU执行时间的机会。还有就是它并不能控制具体的交出CPU的时间,因为yield() 方法只是使当前线程重新回到就绪态,所以执行 yield()的线程有可能在进入到可执行状态后马上又被执行。
实例方法
实例方法需要通过对象来调用。
1.getName()
返回此线程的名称。
2.setName(String name)
设置线程的名称为参数name
3.getPriority()
返回此线程的优先级,返回值为int。
4.interrupt()
中断这个线程。但并不是真的直接中断,而是告诉某个线程,需要进行中断,具体是否要中断,由该线程自己来决定。有一个已经被弃用的stop()方法,是真的中断一个线程。
通过 thread 对象调用 interrupt() 方法通知该线程停止运行,如果线程正在阻塞,则以异常方式通知,否则设置标志位。
5.isInterrupted()
测试这个线程是否被中断,返回值为boolean类型。跟上面的静态方法interrupted()不同的是isInterrupted()方法在被调用后不清除对象标志位。
6.isAlive()
测试线程是否处于活动状态。
7.isDaemon()
测试线程是否是守护线程。
8.run()
线程在被调度时执行的 操作,子线程要执行的代码放入run()方法。
9.start()
启动线程,并执行对象的 run() 方法
10.join(long millis)
等待该线程终止的时间最长为 millis 毫秒。join()方法会使当前线程等待调用 join() 方法的线程结束后才能继续执行。