Thread 类的常用方法和生命周期

  • Thread的常用结构
    • 构造器
      • public Thread() :分配一个新的线程对象。
      • public Thread(String name) :分配一个指定名字的新的线程对象。
      • public Thread(Runnable target) :指定创建线程的目标对象,它实现了Runnable接口中的run方法
      • public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。
    • 常用方法
      • public void run() :此线程要执行的任务在此处定义代码。
      • public void start() :导致此线程开始执行; Java虚拟机调用此线程的run方法。
      • public String getName() :获取当前线程名称。
      • public void setName(String name):设置该线程名称。
      • public static Thread currentThread() :返回对当前正在执行的线程对象的引用。在Thread子类中就是this,通常用于主线程和Runnable实现类
      • public static void sleep(long millis) :使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。
      • public static void yield():yield只是让当前线程暂停一下,让系统的线程调度器重新调度一次,希望优先级与当前线程相同或更高的其他线程能够获得执行机会,但是这个不能保证,完全有可能的情况是,当某个线程调用了yield方法暂停之后,线程调度器又将其调度出来重新执行。
      • public final boolean isAlive():测试线程是否处于活动状态。如果线程已经启动且尚未终止,则为活动状态。
      • void join() :等待该线程终止。
        • void join(long millis) :等待该线程终止的时间最长为 millis 毫秒。如果millis时间到,将不再等待。
        • void join(long millis, int nanos) :等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。
      • public final int getPriority() :返回线程优先级
      • public final void setPriority(int newPriority) :改变线程的优先级,范围在[1,10]之间。
        • Thread类的三个优先级常量:
          • – MAX_PRIORITY(10):最高优先级
          • – MIN _PRIORITY (1):最低优先级
          • – NORM_PRIORITY (5):普通优先级,默认情况下main线程具有普通优先级。
      • public final void stop():已过时,不建议使用。强行结束一个线程的执行,直接进入死亡状态。run()即刻停止,可能会导致一些清理性的工作得不到完成,如文件,数据库等的关闭。同时,会立即释放该线程所持有的所有的锁,导致数据得不到同步的处理,出现数据不一致的问题。
      • void suspend() / void resume() : 这两个操作就好比播放器的暂停和恢复。二者必须成对出现,否则非常容易发生死锁。suspend()调用会导致线程暂停,但不会释放任何锁资源,导致其它线程都无法访问被它占用的锁,直到调用resume()。已过时,不建议使用。
  • 多线程的生命周期
    • JDK1.5之前(5种状态)

    • JDK1.5之后(6种状态)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值