![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OS
文章平均质量分 80
瓴翎玲
一点一滴积累,一步一步向前
展开
-
线程池处理任务
一、线程池1.概念 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着 监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利 用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。2.模拟实现ThreadPool.hpp#pragma once#include<iostream>#include<queue原创 2022-05-29 16:48:19 · 246 阅读 · 0 评论 -
Linux线程同步
一、线程同步同步:保证数据安全的条件下,让多执行流访问资源具有一定的顺序性,从而高效地使用临界资源1.条件变量定义:当一个线程互斥访问某个变量时,它可能发现在其它线程改变状态之前,什么也做不了pthread_cond_t条件变量用来描述某种临界资源是否就绪的一种数据化描述2.二、生产者消费者模型1.模型生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消原创 2022-05-27 23:05:08 · 138 阅读 · 0 评论 -
Linux线程互斥
一、相关概念1.临界资源:多线程执行流共享的资源临界区:每个线程内部,访问临界资源的代码互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源起保护作用原子性:不会被任何调度机制打断的操作,该操作只有两态,要么完成,要么未完二、互斥1.抢票例子变量–:不是原子操作(一搬是三个步骤,存入,–,输出读取)互斥量:本质上是一把锁,(1)代码必须要有互斥行为:当代码进入临界区执行时,不允许其他线程进入该临界区。(2)如果多个线程同时要求执行临界区的代码,并且临界区没有原创 2022-02-16 09:41:50 · 350 阅读 · 0 评论 -
多线程的创建、等待、终止与分离
一、创建一个新的线程头文件:<pthread.h>函数:pthread_create()makefile文件:mythread文件:结果:执行新的线程,主进程仍然继续运行看是否属于一个进程,分别打印出线程与进程的id号,线程与进程的id号是一致的ps -aL | head -1 && ps -aL | grep mythread(显示两个线程的PID一样)-L:显示当前的轻量级进程LWP:轻量级进程ID调用自己线程的ID:pthread _self(),和g原创 2022-02-16 09:25:21 · 488 阅读 · 0 评论