线程

lijie2354 天前
线程
第59天 线程概念1.线程的本质是“共享资源的轻量级进程(Lightweight Process,简称LWP)”;2.内核视角:每个线程对应一个“任务控制块(task_struct)”,内核通过task_struct管理调度单元;
蘑菇小白6 天前
linux·开发语言·线程
Linux多线程开发一般情况下,main函数所在的线程我们称之为主线程,其余创建的线程称之为子线程程序中默认只有一个进程,fork()函数调用,2个进程
沫璃染墨9 天前
开发语言·c++·qt·安全·交互·线程·qt6.3
《Qt从零入门系列(十五):Qt线程安全与锁机制详解——从QMutex到RAII与读写锁实战》多线程能提高效率,但数据安全怎么办?在上一篇文章中,我们学习了Qt的QThread多线程机制,知道如何创建工作线程,并将耗时任务放到其他线程中执行,避免GUI主线程长时间阻塞。
MicrosoftCloud14 天前
操作系统·线程·进程·pcb·408·进程状态·调度
操作系统 02|进程到底被谁推着走?2018 年第 27 题问:下列选项中,可能导致当前进程 P 阻塞的事件是——Ⅰ 申请临界资源、Ⅱ 从磁盘读数据、Ⅲ 系统将 CPU 分配给高优先级的进程。
沫璃染墨16 天前
开发语言·c++·笔记·qt·ui·交互·线程
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》在Qt程序开发中,我们经常会遇到这样的问题:执行一个耗时操作时,窗口突然卡住,按钮无法点击,界面也无法正常响应。等操作结束后,程序才恢复正常。这通常是因为耗时任务占用了 GUI 主线程,导致主线程无法及时处理界面事件。
Liuqy-0519 天前
linux·开发语言·线程·进程·条件变量·同步·互斥
线程的互斥与同步机制——互斥锁、条件变量、无名信号量互斥锁(Mutex,即Mutual Exclusion Lock)是并发编程中用于保护 “共享资源” 的同步工具,本质是一把“独占钥匙”。
Pniubi21 天前
java·线程·线程池·多线程·并发
区分Java创建线程池、多线程多线程是并发执行的能力;线程池是管理线程的容器,用来复用线程、避免频繁创建销毁线程。上面的东西看不懂,本质还是对线程没有足够了解,任务执行在哪其实自己都不知道:
青柠之夏cc22 天前
开发语言·python·线程
Python Java PHP底层对比:内存并发性能全解析最近在群里看到不少朋友争论“到底该学 Python 还是 Java”,还有人问 PHP 是不是真的不行了。说实话,这类问题很难用一句话回答,因为三个语言背后的设计思路差别挺大。今天不打算站队,就单纯从底层实现的角度,把内存模型、并发机制和性能表现这三块拆开聊聊,顺便跑几个小测试,让大家有个直观感受。
流浪00124 天前
linux·操作系统·线程·信号量·环形队列
Linux系统篇47——线程(十二) POSIX 信号量与环形队列,把判空判满提前到访问之前📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 线程(十一)用一把互斥锁加两个条件变量把阻塞队列写完整,判空判满发生在临界区里面。本篇换第二种实现——POSIX 信号量:计数器数的就是资源剩余份数,申请失败就等于条件不成立,判断被挪到访问临界资源之前,还自带原子性。最后落到环形队列版生产者消费者,单生产单消费一把锁都不用。
峥无24 天前
linux·运维·线程
Linux NPTL线程:创建/终止/等待/分离/栈布局内核原理|线程下篇在上篇中,我们已经建立了Linux线程的底层心智模型:线程在内核视角本质上是轻量级进程LWP,多个线程通过共享同一个虚拟地址空间形成执行流;而虚拟地址空间、页表、TLB、缺页异常,则是理解线程资源共享与私有边界的基础。
流浪00125 天前
linux·线程·并发·同步·互斥·阻塞队列·生产者消费者模型
Linux系统篇46——线程(十一) 生产者消费者模型,三种关系和一个交易场所📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 线程(十)把条件变量讲到了底,唤醒机制加等待队列,wait 的两段阻塞也拆完了。本篇把互斥锁和条件变量组合成完整的多线程协作模型——生产者消费者。先摆清两种角色和一个交易场所,再逐一推演三种关系为什么存在,最后回答一个最容易想当然的问题:进出交易场所明明是串行的,高效到底从哪来。
流浪0011 个月前
linux·操作系统·线程·互斥锁·互斥锁原理
Linux系统篇44——线程(九) 互斥锁的接口与原理,从 xchgb 的原子交换说起📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 线程(八)把 ticket 减到负数的全过程拆完,病根落在两条缝隙上——一次减减的三步之间、判断与修改之间。 药只有一味:让同一时刻只许一个线程进那段代码。本篇讲的就是这味药,互斥锁:三种初始化与加锁接口的用法、锁的本质、以及申请锁为什么必须是原子的。
流浪0011 个月前
linux·操作系统·线程·线程安全·锁
Linux系统篇43——线程(八) 线程的数据不一致问题,从 ticket-- 的非原子性说起📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 线程(七)把库和内核的分工拆完,线程的控制面到此收官。控制的下一层是共享——多个线程同时动一份全局数据,事故说来就来。本篇拿抢票当现场,把 ticket 减到负数的全过程一帧一帧拆开:一次减减的三步、切换时的上下文、判断和修改的分离。
流浪0011 个月前
linux·操作系统·线程·pthread库
Linux系统篇39——线程(四) pthread库的由来和线程的创建与等待📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言:篇36 摸清了线程的底——Linux 没有真线程,轻量级进程模拟的;线程(二)拆了页表,线程(三)算完了优缺点、数量、私有的账。账算完,执行流还停在纸上。线程(四)动真格:pthread 库从哪来、线程怎么创建、怎么等它干完活。造出来,才算真懂。
流浪0011 个月前
linux·操作系统·线程·线程创建到销毁
Linux系统篇42——线程(七) pthread库管理线程的工作流,从创建到回收📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 线程(六)讲完退出和隔离,线程控制的面儿全了。但还有个更底层的问题没拆开——pthread 库到底是怎么把一个线程从无到有管起来的。本篇拆这条工作流:库怎么描述线程,内核怎么造执行流,两者怎么联动,join 怎么收割。
沫璃染墨1 个月前
linux·运维·服务器·开发语言·c++·系统架构·线程
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》上一篇,我们把线程的基本概念,以及它和进程之间的那层关系,里里外外捋了一遍。今天,正式进入Linux多线程编程的实战环节。
en.en..1 个月前
线程
条件变量(pthread_cond_t):为什么必须用 while,不能用 if名词区分多个线程同时执行临界区,会篡改破坏共享数据,需要互斥锁做保护。作用:保证同一时刻,最多只有一个线程执行临界区代码。
AIgorithmGEEK1 个月前
linux·线程·pid
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create在所有操作系统的话题里,"线程"大概是最容易让人以为自己已经懂了的那一个。背下 pthread_create 的四个参数只要二十分钟,可只要往下多问一层——线程的栈是谁分配的?pthread_t 打印出来为什么像个地址?一个线程抛了异常,凭什么整个进程跟着陪葬?——那点"懂了"的感觉就会立刻漏气。
流浪0011 个月前
linux·面试·操作系统·线程
Linux系统篇36——线程(一) 线程的概念、本质和Linux的实现方式📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 篇35 给信号系列收了尾——从信号是什么、怎么发怎么收,一路追到用户态与内核态的切换时机,"进程"这条主线到此闭环。接下来开一条新主线:线程。本篇先把概念钉死:线程到底是什么?多个线程到底共用些什么?Linux 内核里为什么翻遍也找不到一个叫"线程"的结构? 三个问题,一次讲透。
weixin_440730502 个月前
python·线程·queue
队列QUEUE介绍+类型示例(先进先出、后进先出、优先级高先出、双端进入、生产者+消费者线程)测试结果: 3. 后入先出队列的使用:如买水果后进入的新鲜水果先卖出去。 4. 双端对列:进入(左和右)appendleft和append。出:popleft和pop。 5. 消费者模型:分为生产数据的线程端和消费数据的线程端。两个线程一个管生产一个管消费。具体见代码