
多线程
文章平均质量分 92
zhcblog
从事云计算分布式存储相关工作
展开
-
无锁队列ringbuff实现以及性能
以上场景对于有锁队列和无锁队列都可以使用的,但还如果对性能要求比较高,比如需要达到上万ops,就可以考虑优先使用无锁队列。相反如果性能达不到这么高使用有锁队列和无锁队列性能差别并不大,但是有锁队列实现会更加简单。以同样的数据结构(环形队列)实现一个有锁的队列,进行对比测试,两者的区别就在于一个加锁一个无锁,消费者在取出数据后会进行1000 次 empty loop。系统:Debian x86_64虚拟机,4核4G。本文采用的是循环队列的实现方式。原创 2023-06-29 16:48:13 · 569 阅读 · 0 评论 -
Linux C语言 生产者消费者模型 条件变量互斥锁实现
生产者消费者模型程序实现#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>typedef struct MSG{ struct MSG* next; struct MSG* pre; int id;}msg_t;msg_t *phead = NULL, *ptail = NULL;// 静态初始化 也可以用pt原创 2020-07-22 21:29:36 · 1013 阅读 · 3 评论 -
线程控制原语(2) -- 线程回收
pthread_join函数作用:阻塞等待线程退出,获取结束线程的退出状态。其作用相当于进程中 waitpid() 函数。如果没有调用pthread_join函数回收已退出的进程的话,则该进程的退出状态会残留在系统中成为僵尸线程,所以一定要对已经退出的线程进程状态回收。#include <pthread.h>int pthread_join(pthread_t thread, void **retval);// Compile and link with -pthread (含有线程的原创 2020-07-06 19:38:33 · 219 阅读 · 0 评论 -
线程控制原语(1)-- 创建线程
文章目录线程介绍Linux内核线程实现原理线程共享资源线程非共享资源线程优、缺点线程控制原语pthread_self函数pthread_create函数pthread_exit函数创建N个线程总结:线程介绍Linux内核线程实现原理类Unix系统中,早期是没有“线程”概念的,80年代才引入,借助进程机制实现出了线程的概念。因此在这类系统中,进程和线程关系密切。轻量级进程(light-weight process),也有PCB,创建线程使用的底层函数和进程一样,都是调用同一个内核函数clone。原创 2020-07-05 22:35:46 · 631 阅读 · 0 评论