java基础知识总结之与线程相关方法

线程调度:

  • 线程调度有分时调度和抢占式调度(java使用)
  • setPriority()和getPriority()设置和获取线程的优先级(java优先级从1-10,仅仅表示线程获取时间片的效率,默认优先级为5)

线程控制:

  • sleep(long mills)让线程休眠指定的时间(需要抛出异常)
  • join()等待该线程终止,只有该线程执行完成之后,其他线程才能执行
  • yield()暂停当前执行的线程,执行其他的线程
  • public final void setDaemon(boolean on)将当前线程标记为守护线程(当正在运行的所有线程都是守护线程时,jvm退出)
  • 中断线程
    stop(),终止当前的线程,后面的线程也被终止。(已过时,不建议使用)
    interrupt(),终止当前线程,并抛出InterruptException异常。
  • start()启动线程
  • wait(也可以有参数)执行后该线程进入等待
  • notify()唤醒在该对象监视器上等待的单个线程
  • notifyAll()唤醒在该对象监视器上等待的所有线程

sleep()和wait()的区别:

  • sleep()是Thread类下的静态方法,而wait()是Object中的方法
  • sleep()必须指定时间,wait()可以指定也可以不指定
  • 执行sleep()方法不会释放锁,而执行wait()方法释放锁。

为什么wait(),notify(),notifyAll()等方法定义在Object类中

因为在使用同步块的时,锁对象是任意对象,而且这三个方法必须通过锁对象来调用,所以设置在Object类下。

线程的生命周期

  • 正常的生命周期:
    新建----就绪-------运行-----死亡
  • 线程生命周期图:
    在这里插入图片描述

(个人总结,仅供参考,有错请指正,谢谢)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值