java 线程有哪些方法

1.start() 启动

2.isAlive() 是否活动这,只有在start之后,在run方法走完之后,是true

3.state() 线程状态

4.getPriority()  获取线程优先级,默认是5,线程默认优先级为5,如果不手动指定,那么线程优先级具有继承性,比如线程A启动线程B,那么线程B的优先级和线程A的优先级相同

5.setPriority() CPU会尽量将执行资源让给优先级比较高的线程。 

6.setDaemon 设置守护线程 比如在主线程里面开启一个thread,然后设置thread线程是守护线程(在start之前设置这个属性),比如在thread里面有一个while(true)循环,等主线程结束之后,我们的thread也会结束,这个thread就叫守护线程。

7.interrupt 开始以为是会让线程中断,测试之后,调用之后,线程并没有中断。 如果在线程里面有阻塞的话,他就是提示报错。如果线程里面没有阻塞的话,他设置interrupt没有任何作用

 

8.join()  方法的作用是等待线程销毁。join()方法反应的是一个很现实的问题,比如main线程的执行时间是1s,子线程的执行时间是10s,但是主线程依赖子线程执行完的结果,这时怎么办?可以像生产者/消费者模型一样,搞一个缓冲区,子线程执行完把数据放在缓冲区中,通知main线程,main线程去拿,这样就不会浪费main线程的时间了。另外一种方法,就是join()了

join(int) 等待线程时间。超过这个时间就不等了。

 

静态方法

getName()获取线程名称 在构造方法里面和在run方法里面都打印了线程名称,最后这边显示第1个是main的名称,在run里面才是线程名称。

 

sleep(long)当前线程 暂停执行

 

posted @ 2018-04-12 17:44  tangw  阅读(277)  评论(0编辑  收藏  举报