文章目录
-
- 一、Java线程相关的API
-
- 1、start():启动线程
- 2、run():
- 3、join() 等待线程运行结束
- 4、getId(): 获取线程长整型的id,id唯一
- 5、getName():获得线程名, setName(): 设置线程名
- 6、getPriority():获取线程的优先级, setPriority(int):修改线程优先级
- 7、getState():获取线程状态
- 8、isInterrupted()、interrupt()、Thread.interrupted()
- 9、isAlive():线程是否存活(还没有运行结束)
- 10、sleep():静态方法,让当前线程休眠n毫秒,让出cpu的事件片
- 11、Thread.yield():静态方法
- 12、setDaemon(true):驻守后台,守护线程(Daemon)
- 13、线程组(ThreadGroup):分门别类的管理
一、Java线程相关的API
1、start():启动线程
启动一个新新线程,在新的线程中运行run方法
- 线程状态从
新建状态
—>就绪状态
多次调用start()
会抛出IllegalThreadStatusException
2、run():
新线程启动后会自动调用的方法
,如果直接在调用run()方法,是不会创建一个新的线程的,而是直接在本线程内运行run()方法。
3、join() 等待线程运行结束
- 因为主线程的和线程t1是并行执行的,t1线程需要多少时间才能计算出来,这往往是不能确定的,所以需要join方法
- 使用sleep方法不行,因为很很难精确的直到t1线程的计算时间。
从调用者的角度来讲:有同步和异步
- 需要等待结果的返回,才能继续运行就是同步
- 不需要等待结果的返回,就能继续运行就是异步
4、getId(): 获取线程长整型的id,id唯一
5、getName():获得线程名, setName(): 设置线程名
- 可以在创建线程的时候作为参数,传递给线程