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)当前线程 暂停执行