Java learn 常见的线程方法

如同当初学习 String类一致 在学习之前 都会去熟悉该类的常见方法

1、Thread.sleep() 可以理解为线程执行的延迟 存在于run方法中 放入参数其中 Thread.sleep(100) 表示该线程执行会停顿100毫秒 在这里会出现会抛出InterruptedException 中断异常——也就是该类是否停顿了 因为有可能停止就不执行了这时就会抛出 InterruptedException 以源码角度来看实质就是throws
因此需要在调用的时候 进行try catch 异常捕抓

2、Thread.join()
运用匿名类写一个线程类的时候 用该线程类引用名调用join() 使其加入到主线程中 隐藏的主线程执行到这会等待先让该加入的执行完毕再进行 解释一下主线程的概念
所有进程,至少会有一个线程即主线程

3、线程优先级
代码的执行靠的是 CPU资源的提供 具体可以看看计算机组成原理
因此优先级在这里的应用就是 线程竞争时夺取的cpu资源越多 代码执行更快 优先级高的线程会有更大的几率获得CPU资源 多条线程各自会尽力去占有CPU资源

具体实现优先级的方法是——setPriority() 该方法需要传入一个int型的参数 来表示其优先级程度 而查看源码发现分好了三个级别——
在这里插入图片描述
因此 传参的时候传MIN_PRIORITY、NORM_PRIORITY MAX_PRIORITY
在这里插入图片描述

4、临时暂停—— Thread.yield();
是其他线程更有可能占有更多的CPU资源
该方法的调用应放入 run方法内 才能临时暂停

5、守护线程—— t1.setDaemon(true);
判别出该线程类为一个守护线程 所以传参是个布尔值
守护线程的概念是: 当一个进程里,所有的线程都是守护线程的时候,结束当前进程。
它的存在就是一种对其他线程类的支持 辅助作用 但是没有主力全是辅助 那么该进程也可以停止了
守护线程通常会被用来做日志,性能统计等工作。

疑问:
如果某线程类 优先级低 但是却在主线程执行过程中被join() 加入进去 那么在主线程执行的时候会先让该加进的类执行 那是不是该加进去的线程类优先级提高了?

在执行程序时 join 那段try catch 打印出来异常路径.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值