Java多线程——常用的方法
Posted 似水流年,是谁苍白了等待
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程——常用的方法相关的知识,希望对你有一定的参考价值。
一、线程中常用的非静态方法
- start()
功能:启动一个新线程,在新的线程运行run方法中的代码
start方法只是让线程进入就绪,里面代码不一定立刻运行(CPU的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次就会出现IllegalThreadStateException
- run()
功能:新线程启动后会调用的方法
如果构造Thread对象时传递了Runnable参数,则线程启动会调用Runnable中的run方法,否则默认不执行任何操作,但可以创建Thread的子类对象,来覆盖默认行为。
- join()
功能:等待线程运行结束
- join(long n)
功能:等待线程运行结束,最多等待n毫秒。用于线程通信时
- getId()
功能:获取线程长整型的id
id唯一
- getName()
功能:获取线程名
- setName(String)
功能:修改线程名
- getPriority()
获取线程优先级
- setPriority(int)
功能:修改线程优先级
java中规定线程优先级是1~10的整数,较大的优先级能提高该线程被CPU调度的几率
- getState()
功能:获取线程状态
java中线程状态是用6个enum表示,分别为RUNNABLE,BOLOCKED,WAITING,TIMED_WATING,TERMINATED
- isInterrupted()
功能:判断是否被打断
不会被清除,打断标记
- isAlive()
功能:判断线程是否存活(还没有运行完毕)
- interrupt()
功能:打断线程
如果被打断线程正在sleep,wait,join会导致被打断线程抛出InterrupteException,并清除打断标记,如果打断的正在运行的线程,则会设置打断标记,park的线程被打断,也会设置打断标记。
二、线程中常用的静态方法
- interrupted()
static 判断当前线程是否被打断
功能:会清除打断标记
- currentThread()
static 获取当前正在执行的线程
- sleep(long n)
功能:static 让当前执行的线程休眠n毫秒,休眠时间让出cpu的时间片给其他线程
- yield()
功能:static ,提示线程调度器让出当前线程对CPU的使用
主要是为了测试和调试
以上是关于Java多线程——常用的方法的主要内容,如果未能解决你的问题,请参考以下文章