day10

qq_45812338 2020-01-28 10:24:13
线程的状态和方法
线程的主要状态
新建状态 - 当线程对象使用new关键字创建完毕后进入的状态。
- 此时线程还没有开始执行。
就绪状态 - 当线程对象调用start()方法后进入的状态。
- 此时线程依然没有开始执行。
运行状态 - 当线程调度器调度就绪线程后进入的状态。
- 此时线程开始执行。
- 当时间片执行完毕后线程的任务没有完成时回到就绪状态。
消亡状态 - 当时间执行完毕后线程的任务已经完成时进入的状态。
- 此时线程已经终止。
阻塞状态 - 当线程执行的过程中发生了阻塞事件后进入的状态,如:sleep()方法。
- 当阻塞状态解除后回到就绪状态。

线程的常用方法
static void sleep(long millis) - 用于使得调用线程休眠参数指定的毫秒数。
int getPriority() - 用于获取线程的优先级。
void setPriority(int newPriority) - 用于设置线程的优先级。
- 优先级高的线程不一定先执行,但是该线程获得CPU时间片的机会更多一些。
void join() - 用于等待调用线程终止。
void join(long millis) - 用于等待线程的最长时间为参数指定的毫秒数。
boolean isDaemon() - 用于判断该线程是否为守护线程。
void setDaemon(boolean on) - 用于设置该线程为守护线程。
- 该方法必须在启动线程前调用。
- 当所有非守护线程结束后,则守护线程会随之结束,此时Java虚拟机退出。

线程的同步机制
基本概念
当多个线程同时访问同一种共享资源时可能会造成数据的不一致等问题,此时就需要对多个线程之间进行协调和通信,该机制就叫线程的同步机制。
...全文
22 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧