Java多线程之线程常用方法

1.start()  启动线程,调用线程处于就绪状态。

2.线程的优先级 1-10

线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。

线程的优先级具有继承性,比如A线程启动B线程,则A和B的线程优先级是一样的。

    public final static int MIN_PRIORITY = 1;


    public final static int NORM_PRIORITY = 5;


    public final static int MAX_PRIORITY = 10;

3.Thread.yield( )

线程让步,当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行。

yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保

证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行。

4.Thread.sleep(long millis)和Thread.sleep(long millis, int nanos)

线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行。

执行 Thread.sleep方法后当前线程将进入阻塞状态。

5.thread.join 非静态方法且抛出异常InterruptedException

一旦某个线程调用了join方法,那么就要一直运行到该线程运行结束,才会运行其他进程。

join()方法还有带超时限制的重载版本。 例如t.join(5000);则让线程等待5000毫秒,如果超过这个时间,则停止等待,变为可运行状态。

释放锁:wait();

不释放锁: sleep()   yield()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值