![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 68
wjfdsklfdkfksd
这个作者很懒,什么都没留下…
展开
-
linux之线程同步
首先,如果锁的占用时间很长,自旋锁会导致线程一直循环等待,浪费 CPU 资源。其次,自旋锁只适用于单核 CPU 或者多核 CPU 上锁的线程数比较少的情况,因为在多核 CPU 上,如果一个线程一直占用锁,其他线程就会一直循环等待,导致 CPU 资源的浪费和性能下降。pshared控制信号量的类型,如果值为0,就表示这个信号量是当前进程的局部信号量,在当前进程的多个线程之间共享,否则信号量就可以在多个进程之间共享;自旋锁的优点是等待锁的线程不会被阻塞,因此在锁的占用时间很短的情况下,自旋锁的性能比较高。原创 2023-05-17 12:12:37 · 210 阅读 · 0 评论 -
linux之多线程
线程清理函数(thread cleanup function)是在线程退出时自动调用的函数。它可以用来清理线程中使用的资源,例如释放动态分配的内存、关闭文件句柄等。线程清理函数通过pthread_cleanup_push()和pthread_cleanup_pop()函数来注册。pthread_cleanup_push()函数用于注册一个线程清理函数,它将该函数压入线程的清理函数栈中。pthread_cleanup_pop()函数则用于弹出该函数,从而使得该函数不再被调用。原创 2023-05-16 17:49:41 · 207 阅读 · 0 评论 -
C++11实现线程池
每个进程的虚拟地址空间都是从 0 地址开始的,我们在程序中打印的变量地址也其在虚拟地址空间中的地址,程序是无法直接访问物理内存的。看到这里可能会有些疑惑用互斥锁同样可以实现这个需求,显然互斥锁效率是要低的,因为每次使用这个线程都要上锁然后判断标记位 这样消耗的时间还会更长。2. 线程A要访问资源Y, 线程B要访问资源X,因为资源X和Y已经被对应的锁锁住了,因此这个两个线程被阻塞。原创 2023-05-05 17:15:14 · 1350 阅读 · 0 评论 -
【无标题】
Windows中有很多像进程对象、线程对象、文件对象等等这样的对象,我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块,由系统创建并维护,这个内存对象是一个数据结构,维护着与对象相关的信息(如计数器)。内核对象为内核所拥有,而不为进程所拥有,所以不同进程可以访问同一个内核对象。原创 2023-04-28 17:03:45 · 792 阅读 · 0 评论 -
线程池的设计
线程池就是创建若干个可执行的线程放到容器中,有任务处理时,会提交到线程池中的任务队列中,线程处理完不是销毁,而是阻塞等待下一个任务。原创 2023-04-27 09:27:04 · 692 阅读 · 0 评论 -
生产者消费者模型
【代码】生产者消费者模型。原创 2023-04-26 14:33:13 · 42 阅读 · 0 评论 -
vs编译器下,关于““一元运算符应用于无符号类型,结果仍未无符号类型““的错误原因分析?
vs编译器下,关于""一元运算符应用于无符号类型,结果仍未无符号类型""的错误原因分析原创 2022-12-28 14:11:02 · 578 阅读 · 1 评论