线程

进击的荆棘2 天前
linux·运维·服务器·安全·单例模式·线程
Linux系统——线程同步与互斥之线程池和安全💁‍♂️个人主页 :进击的荆棘👇作者其它专栏:结合之前做的所有封装,进行线程池的设计。做如下准备:
进击的荆棘5 天前
linux·运维·服务器·线程
Linux系统——线程概念与控制之线程封装💁‍♂️个人主页:进击的荆棘👇作者其它专栏:●pthread_create函数会产生一个线程ID,存放第一个参数指向的地址中。该线程ID和前面说的线程ID不是一回事
lijie23514 天前
线程
第59天 线程概念1.线程的本质是“共享资源的轻量级进程(Lightweight Process,简称LWP)”;2.内核视角:每个线程对应一个“任务控制块(task_struct)”,内核通过task_struct管理调度单元;
蘑菇小白16 天前
linux·开发语言·线程
Linux多线程开发一般情况下,main函数所在的线程我们称之为主线程,其余创建的线程称之为子线程程序中默认只有一个进程,fork()函数调用,2个进程
沫璃染墨19 天前
开发语言·c++·qt·安全·交互·线程·qt6.3
《Qt从零入门系列(十五):Qt线程安全与锁机制详解——从QMutex到RAII与读写锁实战》多线程能提高效率,但数据安全怎么办?在上一篇文章中,我们学习了Qt的QThread多线程机制,知道如何创建工作线程,并将耗时任务放到其他线程中执行,避免GUI主线程长时间阻塞。
MicrosoftCloud24 天前
操作系统·线程·进程·pcb·408·进程状态·调度
操作系统 02|进程到底被谁推着走?2018 年第 27 题问:下列选项中,可能导致当前进程 P 阻塞的事件是——Ⅰ 申请临界资源、Ⅱ 从磁盘读数据、Ⅲ 系统将 CPU 分配给高优先级的进程。
沫璃染墨1 个月前
开发语言·c++·笔记·qt·ui·交互·线程
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》在Qt程序开发中,我们经常会遇到这样的问题:执行一个耗时操作时,窗口突然卡住,按钮无法点击,界面也无法正常响应。等操作结束后,程序才恢复正常。这通常是因为耗时任务占用了 GUI 主线程,导致主线程无法及时处理界面事件。
Liuqy-051 个月前
linux·开发语言·线程·进程·条件变量·同步·互斥
线程的互斥与同步机制——互斥锁、条件变量、无名信号量互斥锁(Mutex,即Mutual Exclusion Lock)是并发编程中用于保护 “共享资源” 的同步工具,本质是一把“独占钥匙”。
Pniubi1 个月前
java·线程·线程池·多线程·并发
区分Java创建线程池、多线程多线程是并发执行的能力;线程池是管理线程的容器,用来复用线程、避免频繁创建销毁线程。上面的东西看不懂,本质还是对线程没有足够了解,任务执行在哪其实自己都不知道:
青柠之夏cc1 个月前
开发语言·python·线程
Python Java PHP底层对比:内存并发性能全解析最近在群里看到不少朋友争论“到底该学 Python 还是 Java”,还有人问 PHP 是不是真的不行了。说实话,这类问题很难用一句话回答,因为三个语言背后的设计思路差别挺大。今天不打算站队,就单纯从底层实现的角度,把内存模型、并发机制和性能表现这三块拆开聊聊,顺便跑几个小测试,让大家有个直观感受。
流浪0011 个月前
linux·操作系统·线程·信号量·环形队列
Linux系统篇47——线程(十二) POSIX 信号量与环形队列,把判空判满提前到访问之前📚 本文收录于「流浪」的系列专栏🏠 博客主页:流浪 | 📝 原创首发于 CSDN前言: 线程(十一)用一把互斥锁加两个条件变量把阻塞队列写完整,判空判满发生在临界区里面。本篇换第二种实现——POSIX 信号量:计数器数的就是资源剩余份数,申请失败就等于条件不成立,判断被挪到访问临界资源之前,还自带原子性。最后落到环形队列版生产者消费者,单生产单消费一把锁都不用。
峥无1 个月前
linux·运维·线程
Linux NPTL线程:创建/终止/等待/分离/栈布局内核原理|线程下篇在上篇中,我们已经建立了Linux线程的底层心智模型:线程在内核视角本质上是轻量级进程LWP,多个线程通过共享同一个虚拟地址空间形成执行流;而虚拟地址空间、页表、TLB、缺页异常,则是理解线程资源共享与私有边界的基础。
流浪0011 个月前
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..2 个月前
线程
条件变量(pthread_cond_t):为什么必须用 while,不能用 if名词区分多个线程同时执行临界区,会篡改破坏共享数据,需要互斥锁做保护。作用:保证同一时刻,最多只有一个线程执行临界区代码。
AIgorithmGEEK2 个月前
linux·线程·pid
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create在所有操作系统的话题里,"线程"大概是最容易让人以为自己已经懂了的那一个。背下 pthread_create 的四个参数只要二十分钟,可只要往下多问一层——线程的栈是谁分配的?pthread_t 打印出来为什么像个地址?一个线程抛了异常,凭什么整个进程跟着陪葬?——那点"懂了"的感觉就会立刻漏气。