Thread类常用的方法如下:
Thread.activeCount():这个方法用于返回当前线程的线程组中活动线程的数量,返回的值只是一个估计值,因为当此方法遍历内部数据结构时,线程数可能会动态更改。)。
Thread.checkAccess(): 检验当前正在执行的线程是否有权限修改thread的属性,这个方法我们一般不自己进行调用,Thread类的set方法在进行属性修改时都会先调用这个方法。
Thread.currentThread():该函数是Static可以直接调用获取当前正在运行的线程。
Thread.getAllStackTraces():获取系统中所有线程的线程栈信息。
thread.getName():获取线程的名字。
thread.getPriority():获取线程的优先级。
thread.getStackTrace():获取堆栈信息。
thread.getState():获取线程状态。
thread.getThreadGroup():获取线程所在线程组。
thread.interrupt():使得指定线程中断阻塞状态,并将阻塞标志位置为true。
thread.interrupted():测试当前线程是否被中断。
thread.isAlive():判断线程是否还存活着。
thread.join():在当前线程中加入指定线程,使得当前线程必须等待指定线程运行结束之后,才能结束。可以理解成线程插队、等待该线程终止。需要在线程的start()函数后执行。
Thread.sleep(long):强制线程睡眠一段时间,单位:毫秒。
thread.start():启动一个线程。
thread.setName(name):设置线程的名字。
thread.setPriority(priority):设置线程的优先级。
thread.yield():使得当前线程退让出CPU资源,把CPU调度机会分配给同样线程优先级的线程。
object.wait()、object.notify()、object.notifyAll():Object类提供的线程等待和线程唤醒方法。
守护线程可以理解为服务线程,他们的作用就是服务于其他用户线程。当系统中不存在其他用户线程时,这些守护线程也会自动消亡。比如JVM的垃圾清理线程就是守护线程。我们可以使用如下方法查看和设置线程是否是守护线程。
thread.isDaemon():判断线程是否是守护线程。
thread.setDaemon(true):将指定线程设置为守护线程。