《Java 线程编程》学习笔记6

《Java 线程编程》学习笔记6

第六章 线程优先化

6.1 系统线程优先级

6.2 线程优先级常量

  1. Thread.MAX_PRIORITY:10
  2. Thread.MIN_PRIORITY:1
  3. Thread.NORM_PRIORITY:5

6.3 判断当前优先级:getPriority()

6.4 更改线程的优先级:setPriority()

  1. 何时 setPriority() 失效:
    • 如果调用线程不允许更改优先级,调用 setPriority() 会抛出 SecurityException。仅当安装了 SecurityManager,而且它拒绝更改优先级请求时,才会发生这种情况。默认情况,应用程序没有 SecurityManager。

6.5 线程状态

  1. 线程有如下6种状态:

    • 正运行
    • 准备运行
    • 休眠
    • 等待
    • 阻塞于 IO
    • 阻塞于同步
  2. 线程规划器控制哪一个准备运行的线程实际运行于处理器上。任何时候,只有一个线程实际处于运行状态。所有其他线程均处于准备运行状态,等待被线程规划器选中。

  3. 线程的阻塞可以有四种情况:

    1. 阻塞于 sleep()
    2. 阻塞于 wait()
    3. 阻塞于 read()
    4. 阻塞于 synchronized 对象

6.6 优先级和规划

警告:
线程优先级给予线程规划器的一种提示,不应当用于保证程序的正确性。
应该按如下方式编写程序:不管线程的优先级如何,程序都能正确运行。

6.7 自愿放弃处理器:Thread.yield()

6.8 线程规划情形

  1. 情形一:一个高优先级线程独占
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值