news 2026/8/21 23:43:29

多线程(2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多线程(2)

三、线程状态【理解】

static void sleep(long ms):让当前线程处于休眠状态,休眠的单位是毫秒(ms),处于休眠状态的线程进入有限
期等待状态 。sleep方法会让当前线程释放cpu,但是不释放锁标记。
2. void join() : 让某 线程加入到自身任务中,在哪个线程中调用其他线程join方法,则代表此线程让步其他线程
优先执行,此线程从而进入无限期的等待状态。
例如:在主线程中main函数中: t.join() ; 代表主线程让步于t线程执行
四、线程同步【重点】
1. 临界资源:多线程并发时,被多个线程共享的同一个对象,称为临界资源。
2. 原子操作:不可以分割的多步操作,被视为一个整体,其执行顺序和步骤不能被打破。
3. 线程同步:多线程并发访问时,为了保证临界资源的正确性,从而不破坏操作中的原子操作。
(保护原子操作不能被破坏)
4. 线程同步的两种方式:
(1) 同步代码块:对临界资源对象进行加锁。
a. 定义位置:方法内部
b. 利用 synchronized 对临界资源加锁
c. 语法: synchronized(临界资源对象){
// 原子操作
}
d. 执行的原理:当线程获取临界资源的锁标记时,锁标记空闲,则能获取该对象的锁标记,获取锁标记之
后,可以执行同步代码块{}中的代码,而且只有当{}中所有的内容全部执行完,才释放拥有的锁标
记;但是当线程获取临界资源对象的锁标记时,锁标记被其他线程占用,则此线程进入阻塞状态
(Blocked状态),只有当其他线程释放锁标记,此线程获取锁标记,才结束阻塞状态,同时获取cpu,可以执行{}中 的内容。
2) 同步方法:

a. 用 synchronized修饰 方法:被 synchronized修饰的方法称为同步方法

b. 语法:

修饰符 synchronized 返回值类型 方法名(形参列表)throws 异常{

// 原子操作

}

c. 同步方法等价于 同步代码块:是对当前对象进行加锁

synchronized(this){

// 原子操作

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 23:57:49

【数据库】【Redis】基本概念和特点

Redis的基本概念和特点 Redis(Remote Dictionary Server)是一种开源的、基于内存的键值存储系统,支持多种数据结构(如字符串、哈希、列表、集合、有序集合等)。其核心特点包括: 高性能:数据存储…

作者头像 李华
网站建设 2026/8/20 14:33:52

基于Spring Boot 图书管理系统

基于Spring Boot 图书管理系统 一、系统背景与目的 随着信息技术发展和图书馆规模扩大,传统图书管理方式难以满足现代需求。基于 Spring Boot 开发的图书管理系统,旨在通过实现图书增删改查、用户管理、借阅管理等功能,提升管理效率与准确性…

作者头像 李华
网站建设 2026/8/21 12:46:00

Linux网络日志怎么查看?

Linux网络日志是排查网络故障、检测入侵行为的核心依据,但不同服务的日志分散在不同目录,且日志格式复杂,新手常陷入 找不到日志、看不懂内容的困境。那么Linux网络日志怎么查看?以下是详细内容介绍。Linux系统中的网络日志主要用于记录与网…

作者头像 李华
网站建设 2026/8/21 22:58:42

第十八篇:Day52-54 前端跨端开发进阶——从“多端适配”到“跨端统一”(对标职场“全栈化”需求)

一、前置认知:跨端开发的核心价值与职场痛点随着移动互联网、小程序、桌面应用等场景的爆发,企业面临“多端布局”与“研发成本”的矛盾:某电商平台需维护iOS、Android、H5、微信小程序4套代码,新增一个商品详情页需4个团队同步开…

作者头像 李华
网站建设 2026/8/21 17:42:41

内存金字塔:Ascend C中的多级存储体系与高效访存设计

目录 🎯 摘要 1. 🏗️ 技术原理:内存金字塔的架构哲学 1.1 达芬奇架构的内存层次设计 1.2 Unified Buffer的硬件级秘密 1.3 访存延迟的数学模型 2. ⚡ 实战部分:从理论到代码的跨越 2.1 基础数据搬运优化实战 2.1.1 DMA指…

作者头像 李华