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

做消防哪些网站找工作免费咨询医生回答在线

做消防哪些网站找工作,免费咨询医生回答在线,如何用七牛云做视频网站,台州网站建设咨询在 Java 中,线程(Thread)是并发编程的核心,以下是线程的常用方法及其说明: 1. 线程创建与启动 Thread(Runnable target) 构造方法,传入 Runnable 实现对象。void start() 启动线程,JVM 会自动调…

在 Java 中,线程(Thread)是并发编程的核心,以下是线程的常用方法及其说明:


1. 线程创建与启动

  • Thread(Runnable target)
    构造方法,传入 Runnable 实现对象。
  • void start()
    启动线程,JVM 会自动调用 run() 方法(只能调用一次)。
Thread thread = new Thread(() -> System.out.println("线程运行"));
thread.start(); // 启动线程

2. 线程生命周期控制

  • static void sleep(long millis)
    当前线程休眠指定毫秒(不释放锁),需处理 InterruptedException
    Thread.sleep(1000); // 休眠1秒
    
  • void join() / void join(long millis)
    等待该线程终止(或最多等待 millis 毫秒)。
    thread.join(); // 主线程等待thread执行完毕
    
  • static void yield()
    提示调度器让出当前线程的 CPU 使用权(实际效果取决于 JVM 实现)。
  • void interrupt()
    中断线程(设置中断标志),若线程在 wait/sleep/join 中会抛出 InterruptedException
  • boolean isInterrupted()
    检测线程是否被中断(不清除中断状态)。
  • static boolean interrupted()
    检测当前线程是否被中断(清除中断状态)。

3. 线程状态与属性

  • Thread.State getState()
    获取线程状态(NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED)。
    Thread.State state = thread.getState();
    
  • void setName(String name) / String getName()
    设置/获取线程名称。
  • void setPriority(int priority) / int getPriority()
    设置/获取优先级(1~10,默认 5)。
  • void setDaemon(boolean on) / boolean isDaemon()
    设置/判断是否为守护线程(JVM 在所有非守护线程结束时退出)。

4. 对象锁与线程通信(在 synchronized 块内使用)

  • void wait()
    释放锁,使当前线程等待,直到其他线程调用 notify()/notifyAll()
  • void notify()
    随机唤醒一个等待该对象锁的线程。
  • void notifyAll()
    唤醒所有等待该对象锁的线程。
synchronized (lock) {while (conditionNotMet) {lock.wait(); // 释放锁并等待}// ... 执行操作lock.notifyAll(); // 唤醒其他线程
}

5. 其他实用方法

  • static Thread currentThread()
    获取当前正在执行的线程对象。
    Thread current = Thread.currentThread();
    
  • long getId()
    获取线程的唯一 ID。
  • StackTraceElement[] getStackTrace()
    获取线程的堆栈跟踪信息(用于调试)。

重要注意事项

  1. 废弃方法
    避免使用 stop(), suspend(), resume()(已废弃,可能导致死锁或数据不一致)。
  2. 中断机制
    使用 interrupt() 协作式中断线程,而非强制终止。
  3. 守护线程
    守护线程(如 GC)会在所有非守护线程结束时自动终止。
  4. 线程安全
    优先使用 java.util.concurrent 包(如 ExecutorService, Lock, Atomic 类)代替原生同步。

示例:基础线程操作

public class ThreadDemo {public static void main(String[] args) throws InterruptedException {Thread t = new Thread(() -> {try {Thread.sleep(2000);System.out.println("子线程结束");} catch (InterruptedException e) {e.printStackTrace();}});t.start();System.out.println("线程状态: " + t.getState()); // RUNNABLEt.join(); // 主线程等待t结束System.out.println("线程状态: " + t.getState()); // TERMINATED}
}

掌握这些方法能有效管理线程生命周期和同步,但实际开发中建议使用高级并发工具(如线程池)提升性能和可维护性。

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

相关文章:

  • 运城网站建设费用苏州建设工程招标官方网站
  • tk域名网站想在百度上做网站
  • 安平网站建设优化推广策略的概念
  • 贵州省建设厅建筑质监站网站北京网站建设公司案例
  • 《网络爬虫技术规范与应用指南系列》(xc—3):合规实操与场景落地
  • intel安装pytorch
  • seo网站排名优化公司哪家好wordpress手机导航三横拦
  • Doris专题2- 表类型
  • 网站未来发展规划电子商务网站建设卷子
  • Linux中文件的链接(硬链接和软连接)
  • 关键词搜索引擎网站海底捞网络营销方式
  • 图片网站 建站长沙中企动力
  • 茶叶淘宝店网站建设ppt北京公司注册地址政策
  • 论坛网站方案淘宝无货源一键铺货软件
  • 通达oa 做网站wordpress 前台注册登录
  • Nuron - Multi Vendor Auctions NFT WooCommerce Theme : WooCommerce
  • 学做美食看哪个网站如何规划一个外贸网站
  • iapp用网站做软件代码飞沐视觉北京网站建设公司
  • wordpress後台小程序seo是什么意思电商
  • Win10如何局域网内共享文件夹给其他电脑
  • 网站建设 小程序制作桂林商品房做民宿在哪个网站登记好
  • 美橙互联同类型网站wordpress 的图片保存在哪
  • 大网站开发费用wordpress 搜索筛选器
  • MySQL笔记---复合查询
  • wordpress 手机网站支付宝360全景图制作
  • 计算机如何生成随机数? 什么是种子?
  • Qemu调试ARM64 linux内核 IOMMU(SMMU)驱动环境搭建
  • 正版宝安网站推广建设电子商务网站市场分析
  • Qt可执行文件打包全流程
  • 大庆免费网站建设公司网站开发平台是什么