当前位置: 首页 > news >正文

视频网站调用湖北网站推广

视频网站调用,湖北网站推广,怎么做一个设计师网站,免费创建单页网站包括线程状态、Thread.yield()、Thread.join()、线程安全停止、标志位、中断等,都是线程这块秋招的重点。1. 线程状态(Thread.State)Java 中线程有 6 种状态:状态含义进入条件NEW新建状态Thread t new Thread(...);RUNNABLE可运行…

包括线程状态、Thread.yield()、Thread.join()、线程安全停止、标志位、中断等,都是线程这块秋招的重点。


1. 线程状态(Thread.State)

Java 中线程有 6 种状态

状态

含义

进入条件

NEW

新建状态

Thread t = new Thread(...);

RUNNABLE

可运行状态

调用 start() 后,等待 CPU 调度

BLOCKED

阻塞状态

等待锁(synchronized)

WAITING

无时间限制等待

Object.wait()、Thread.join()(无超时)、LockSupport.park()

TIMED_WAITING

有时间限制的等待

sleep(millis)、join(millis)、wait(millis)

TERMINATED

终止状态

线程执行完 run() 方法

注意

  • RUNNABLE 不一定在 CPU 上运行,只是处于可运行队列中。

  • BLOCKED、WAITING、TIMED_WAITING 是阻塞线程状态。

2. Thread.yield()

作用:提示线程调度器,当前线程愿意让出 CPU,但只是“礼貌性提示”,不保证立即切换。

效果:线程从 RUNNING → RUNNABLE,允许同优先级线程运行。

特点

  • 不阻塞线程

  • 不释放锁

示例

for (int i = 0; i < 10; i++) {System.out.println(i);Thread.yield(); // 提示调度器切换线程
}

3. Thread.join()

作用:让当前线程等待调用 join() 的线程执行完成。

效果:当前线程进入 WAITING 或 TIMED_WAITING,直到被等待的线程 TERMINATED

可选超时:join(long millis),超时后线程继续执行。

示例

Thread a = new Thread(() -> System.out.println("线程A执行"));
a.start();
a.join(); // 当前线程等待a执行完
System.out.println("主线程继续");

4. 安全停止线程

4.1 原则

  • Java 不推荐使用 stop()、suspend()、resume(),会破坏资源和锁,容易死锁。

  • 推荐方式:使用标志位(flag)或 interrupt() 请求中断。

4.2 标志位(Flag)

概念:线程内部定义的布尔变量,用于表示线程是否继续运行。

特点

  • 线程自己检查标志位决定是否退出

  • 使用 volatile 修饰保证线程可见性

    这里使用volatile是因为,volatile可以使当前变量的变化能立即被别的线程看到。

示例

class DownloadTask implements Runnable {private volatile boolean running = true;public void stop() {running = false;}@Overridepublic void run() {while (running) {System.out.println("下载中...");}System.out.println("线程停止");}
}

4.3 中断线程(Interrupt)

概念:interrupt() 不是直接停止线程,而是发出中断请求,线程自己决定是否退出。

阻塞线程:sleep()、wait()、join() 会抛 InterruptedException。

非阻塞循环:线程需检查 isInterrupted() 或结合标志位。

示例

class DownloadTask implements Runnable {@Overridepublic void run() {while (!Thread.currentThread().isInterrupted()) {try {Thread.sleep(500); // 阻塞操作,可响应中断} catch (InterruptedException e) {Thread.currentThread().interrupt(); // 重新设置中断标志break; // 安全退出循环}System.out.println("下载中...");}System.out.println("线程安全停止");}
}Thread t = new Thread(new DownloadTask());
t.start();
Thread.sleep(2000);
t.interrupt(); // 请求停止线程

核心理解

  • interrupt() 只是一种请求,不强制停止

  • 循环型任务检查中断标志,阻塞任务捕获异常退出

  • 标志位适合循环任务,interrupt 适合阻塞任务

5. 小结

  1. 线程状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED

  2. yield():礼貌性让出 CPU

  3. join():等待线程完成,可带超时

  4. 安全停止线程

    • 循环任务用 标志位

    • 阻塞任务用 interrupt() + 异常处理

  5. 阻塞 vs 非阻塞:阻塞线程可响应 interrupt,非阻塞线程需自己检查标志

http://www.dtcms.com/a/447988.html

相关文章:

  • 建设网站你认为需要注意哪些问题推广下载app
  • 公司注册一站式平台网站建设平台接单
  • 建设银行网站无法转账泰兴网站推广
  • 哪个公司做网站最好专门做调查的网站
  • 大淘客cms网站建设排名查询系统
  • 好看的电商网站模板下载互联网营销案例
  • 2-1嵌入式进阶指南:P169H002 基于 ST7789T3 和 CST816D 驱动的 LCD 触摸显示屏开发手册(3)
  • 优秀企业网站设计制作工程建设招标网都有哪些网站
  • 西安做网站的云阔网站开发小程序开发
  • 建设银行网站怎么登陆密码忘了怎么办正规建网站企业
  • 系统官网网站模板哪个做网站好
  • 链家网站谁做的现在还有做系统的网站吗
  • 游戏型网站开发如何做一网站
  • 深圳最好的网站建设返利网站开发
  • 做书app下载网站咸阳网站开发哪家好
  • 深圳网站建设中为网站建设应该注意哪些问题
  • 校园网站建设提升有学给宝宝做衣服的网站吗
  • 商城网站建设预算要多少钱wordpress sae 插件
  • win2003创建网站google图片搜索引擎入口
  • 北京企业网站seo平台网站更新前知道内容
  • 新闻资讯网站模板渭南免费做网站公司
  • 晋州 网站建设 网络推广衡水教育行业网站建设
  • 网站推广营销应该怎么做winserver wordpress
  • 湖南省建设银行网站官网应用商店下载安装2023最新版
  • 全国高速公路施工建设有没有网站kotlin做网站
  • 如何利用ps做网站做网站需要多大的显存
  • 桂林北站到龙脊梯田手机能制作软件吗
  • 语种网站建设wordpress移动导航
  • asp网站如何运行教程网网站源码php
  • 整站下载器 做网站地图重庆假山制作