线程(下)

线程篇(主线程(UI线程),后台线程,线程池线程) 后续不间断增加、提示:以下是本篇文章正文内容,下面案例可供参考总之,不同的线程类型适用于不同的场景,我们需要根据具体的需求来选择合适的线程类型。在使用线程时,我们需要注意线程的生命周期、同步机制、异常处理、性能优化等方面的问题,以保证线程的稳定性和可靠性。 阅读详情

目录

多线程的概念

线程同步

Lock

死锁

线程通信

新增创建线程方式


多线程的概念

同时执行多个任务

快 cpu利用率

线程之间对共享资源的访问会互相影响

并发 同一个时间段内依次执行 一个一个来

并行 多人做不同的事

线程同步

多线程同步:即多个线程同时读取同一份共享资源时,可能会引起冲突

解决方法:排队加锁

变成一个一个解决 而不是同步解决

那个线程获取到了这把锁 才有权利访问该共享资源

synchronized(锁对象)关键字 (修饰一段代码块 或者 方法)

修饰方法时 锁对象是this.

锁对象:多个线程对应的是同一个对象,用来记录有没有对象进入到代码块中

两个线程对一个任务进行访问 this 指的是 这一个任务

Lock

juc(并发)

ReentrantLock显示加锁 释放锁

死锁

多个线程分别占用对方需要的同步对象不放手

也不会报错提示 相互等待对方释放锁

线程通信

wait()后锁会被释放

notify() 唤醒线程

来自Object类中的方法

交替线程执行任务

新增创建线程方式

Runable不能放回结果 异常只能自己处理

新的方式

Callable接口

可以返回结果 和泛型

FutureTask

new Thread(futuretask)

FUtureTask.get() 得到返回结果

Linux 线程:使用&管理线程、多线程、分离线程 阅读详情

相关推荐

前台线程和后台线程、用户线程和守护线程

一、Java 分为两种线程:用户线程和守护线程 所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。 守护线程和用户线程的没啥本质的区别:唯一的不同之处就在于虚拟机的离开:...

程序员世杰 2745

线程及线程池

本文章主要讲解线程及线程池部分的相关知识

2301_80365603的博客 1961

线程池的线程是如何复用的

进程和线程的关系相信大家都知道,这里我就不做过多的解释了,既然一个进程是由多个线程组成的,那么线程池又是由若干个线程队列组成的,在并发量比较高的情景下,我们通常会去创建线程池就执行任务,而不单一的创建多个线程去执行任务,因为线程的创建的一系列动作,是需要资源开销的,如果频繁的对线程创建销毁,其实本身是一种很浪费资源的,就更谈不上提高效率了。

m0_71777195的博客 2537

一键了解线程、线程安全、线程池

一键了解线程、线程安全、线程池

HKTTT_的博客 2038

pe卸载win10更新补丁_禁用Win10系统更新

众所周知,最近WIN10的强制更新导致了很多问题。如:(部分专业软件系统更新后无法使用,硬件中键盘、鼠标、指纹之类的硬件,更新补丁后失灵等问题)。而之前的禁用WindowsUpdate的方法已经失效。下面我们另辟蹊径,利用系统权限的方法使Win10无法更新,达到禁用更新的目的。1.计算机管理-服务中禁用Windows Update服务。2.打开C:\Windows\softwareDistribu...

weixin_39702479的博客 1万+

戴维南和诺顿定理到底怎么选?一个实际维修案例讲透两种等效电路用法

本文通过工业电源模块维修案例,详细解析戴维南和诺顿定理在实际电路分析中的选择策略。针对电压敏感型故障、电流分配问题及功率传输异常,提供三大黄金法则,帮助工程师高效选择等效电路方法,提升故障排查效率。特别强调诺顿定理在电流分析中的优势。

weixin_31854867的博客 357

linux线程详解:线程概念、线程调度、线程安全、线程模型

(1)线程的组成:线程ID、当前指令指针(PC)、寄存器集合、堆栈;(2)一个进程包含一个或者多个线程,其中进程的大部分资源(代码段、数据段、堆段、打开文件/信号等)都是线程间共享的,线程会保留一部分私有数据(寄存器、栈);

weixin_42031299的博客 3583

基于Simulink的防空导弹六自由度弹道建模与仿真实战

本文详细介绍了基于Simulink的防空导弹六自由度弹道建模与仿真方法。通过分析导弹动力学原理、Simulink环境配置、气动力建模、推进与控制系统设计等关键环节,提供了一套完整的实战指南。文章特别强调了六自由度模型在防空导弹仿真中的重要性,并分享了常见问题排查与优化建议,为相关领域工程师提供实用参考。

apple5的专栏 868

多线程,线程池,线程的创建,线程池的参数

​ 进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。线程也被称为轻量级进程,线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源,它与父进程的其它线程共享该进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

weixin_44797327的博客 1302

Python自动化生成HyperMesh Tcl命令流:从几何建模到有限元分析

本文详细介绍了如何利用Python自动化生成HyperMesh的Tcl命令流,实现从几何建模到有限元分析的全流程二次开发。通过封装常用操作函数,工程师可以高效完成参数化建模、自动网格划分及求解器文件输出,显著提升CAE前处理效率与标准化水平。

weixin_29041767的博客 424

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程

本人有Unity基础,刚学UE几天,把这一套处理流程记录一下备用。

qq_42915442的博客 9816

线程 - 线程优缺点、线程自有和共享的数据、多线程使用公共空间、线程分离、线程库对线程的管理

在上面的【四、2. 线程自有的数据】部分,我们提及了线程有独立栈结构,现在我们看到它了, 线程的栈结构是在库中维护的,每个线程都有自己的独立栈结构,主线程使用的是地址空间中的栈空间,叫主线程栈。多线程切换有成本,像上面的计算密集型应用,线程过多可能会有较大的性能损失(增加了额外的同步和调度开销,而可用资源不变)。而进程创建的时空成本是较高的,有各种数据结构的创建,数据的加载。让两个线程进同一个线程函数,打印同一个临时变量的地址,是不一样的,说明使用的是不同的栈结构。而线程占用的都是一份的。

addicted_to的博客 1384

Codex CLI 的多模型切换实战:如何在中转 API 环境下灵活选择最佳模型

本文详细介绍了在Codex CLI中实现多模型切换的实战技巧,重点解析了如何在中转API环境下灵活选择最佳AI模型。通过配置Node.js环境和智能路由策略,开发者可以根据任务类型、编程语言和成本考量,在GPT-5、Claude和DeepSeek等模型间高效切换,提升代码生成、审查和优化的效率。

weixin_29291185的博客 836

多线程——线程实现、线程状态、线程同步、线程通信、线程池

多线程一、线程1.普通方法调用和多线程2.程序、进行、线程二、线程创建1.继承Thread类2.实现Runable接口3.实现Callable接口4.静态代理模式5、Lamda表达式三、线程状态1.线程状态2.线程方法3.线程停止4.线程休眠sleep5.线程礼让5.join6.线程状态观测7.线程优先级8.守护(daemon)线程四、线程同步1.并发与并行2.线程同步——等待机制2.1 队列 和 锁2.2 线程同步2.3 同步方法2.4 同步块3.死锁4. Lock锁 一、线程 1.普通方法调用和多线程

weixin_44090845的博客 3771

大语言模型的三种主要架构 Decoder-Only、Encoder-Only、Encoder-Decoder

f基于 Transformer 模型以非灰色显示:decoder-only 模型在蓝色分支,encoder-only 模型在粉色分支,encoder-decoder 模型在绿色分支。模型在时间线上的垂直位置表示它们的发布日期。开源模型由实心方块表示,而闭源模型由空心方块表示。右下角的堆积条形图显示了各公司和机构的模型数量。从时间轴上,我们可以看到:2021年前,当 OpenAI 决定在,他们实际上是在逆流而上。

u010899985的博客 2万+

Python 爬虫实战:Twitter 数据定向抓取(特定话题 + 用户推文爬取与分析)

在社交媒体研究、舆情监测和市场分析等领域,Twitter 数据具有极高的价值。本文将详细介绍如何使用 Python 构建一个完整的 Twitter 数据爬取系统,包括特定话题和用户推文的爬取与分析。我们将涵盖从认证到数据存储、清洗、分析和可视化的全流程。

u014481728的博客 1038

易语言创建线程挂起线程恢复线程销毁线程

线程创建CreateThread,线程挂起SuspendThread,线程恢复ResumeThread,线程销毁TerminateThread,都是kernel32的命令,我们自己封装这些线程的命令,就是便于我们理解他们的工作机制。 API源码: .版本 2 .DLL命令 恢复线程, 整数型, "kernel32", "ResumeThread", , 恢复线程 .参数 hThread, 整数型, , 线程的句柄 .DLL命令 销毁线程, 整数型, "kernel32", "Termi

511遇见 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JAVA线程、线程池解析

是操作系统能够进行的最小单位,它被包含在进程之中,是进程中的实际运作单位。进程是资源分配的基本单位,它拥有自己独立的地址空间和各种资源;而线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而。线程的上下文切换速度比进程快。

柔丽君的博客 1413

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Linux-多线程2 ——线程等待、线程异常、线程退出、线程取消和线程分离

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

fengjunziya的博客 1430

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[线程]等待一个线程, 获取当前线程引用,休眠当前线程, 线程的六种状态

我们知道, 多个线程的调度顺序是无序的, 谁先被调度不确定, 谁先结束也不确定, 所以我们引入线程等待, 可以控制线程结束的先后顺序 上述代码的thread 和 main 之间的结束顺序是不确定的如果我们希望让代码中的t先结束, main后结束, 就可以在main中使用线程等待join(join也要抛异常, 和sleep抛出的异常相同) 我们先修改一下代码, 让thread打印六次, main打印三次, 此时一定是main先结束, 再打印几次thread后, thread才结束 接下来我们加入join 注

m0_73992740的博客 1231

在子线程中创建子线程及线程查看方法

小结:我们看到,son线程的退出,并没有影响到孙线程的运行,因为进程并未退出。 以上述方式一的形式查看线程:1)同一进程中的线程是平等的,没有父子之分。当然也包括所谓的主线程、在主线程中创建的线程、在所谓的子线程中创建的线程。线程既然是平等的,只要进程不退出,倘若son线程退出,我们看到不会影响到孙线程的运行。2)孙线程在子线程中创建,可以理解为,启动孙线程的顺序点是在此时,而并非在主线程中。也就是说,我们可以在任意我们需要创建一个平行任务的地方,创建一个子线程,而并非得在主线程中创建。3)线程函数,其实,

modi000的博客 3070

什么是后台线程?线程是否存活?线程的中断、join() 等待线程 以及 线程状态 等等干货

通过代码可以看到,想要休眠1000 毫秒,却休眠了1005秒,因为:系统会按照1000这个时间来控制线程的睡眠,等达到1秒后,就会唤醒线程,就会使线程从阻塞状态转化为就绪状态,但是呢,当线程转换为就绪状态后,并不是说就会直接去CPU上执行,这中间会有一个“调度开销”,所以,在时间上,就会和我们预期的不一样。在上述代码中,因为sleep() 的原因,所以抛出了异常,当Thread发出中断信号时,正在处于休眠的线程就会被强制唤醒,唤醒之后,sleep() 就会抛出异常,但是线程并没有终止,而是继续执行;

Shine0115的博客 1256

线程与子线程

线程是参与系统调度的最小单位。它被包含在进程之中, 是进程中的实际运行单位。一个线程指的是进程中一个单一顺序的控制流(或者说是执行路线、执行流), 一个进程中可以创建多个线程, 多个线程实现并发运行, 每个线程执行不同的任务。譬如某应用程序设计了两个需要并发运行的任务 task1 和 task2,可将两个不同的任务分别放置在两个线程中当启动应用程序后,系统就创建了一个进程,可以认为进程仅仅是一个容器, 它包含了线程运行所需的数据结构、环境变量等信息。

weixin_46829095的博客 2018

【Linux】线程ID、线程管理、与线程互斥

本文系统剖析Linux多线程编程的核心原理与实战技巧。从线程ID的虚拟地址本质出发,详解线程控制块(TCB)的创建与管理、动态库加载机制,以及线程栈的独立空间特性。通过封装线程类与RAII锁机制,演示如何高效实现多线程的启动、停止与同步。结合抢票系统案例,深入探讨共享资源竞争、互斥锁的应用及死锁避免策略,揭示线程安全与可重入性的关键区别。最后,通过动态库与内核LWP的协同机制,阐明多线程在Linux中的底层实现逻辑,为开发者提供从理论到实践的完整技术闭环。

2303_77756141的博客 1359

线程与线程控制

线程 线程定义 Linux中的所有执行流,都叫做轻量级进程(LWP),轻量级进程又叫线程 线程在进程内部运行:线程在进程地址空间内运行 在Linux中,站在CPU的角度,能否识别该task_struct是进程还是线程? 不能,CPU不需要识别,CPU只关心一个一个的单个执行流,每个task_struct就是一个执行流 在CPU眼中的task_struct<=OS原理的tas

hbbfvv1h的博客 1418

线程池中核心线程与非核心线程,如何进行回收的

线程池中核心线程(core threads)和非核心线程(non-core threads)的回收机制是线程池管理的核心部分,下面我将详细解释它们的回收方式和区别。

C18298182575的博客 910
上一篇: 线程(入门上)
下一篇: java基础上
木工不是杠
博客等级 码龄5年 8粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值