-------Linux编程
文章平均质量分 65
计算机的小粽子
2019年本科毕业于湖南大学,目前任职字节跳动
展开
-
POSIX信号量-------单个生产者&单个消费者
问题描述有两个线程:一个生产者线程和一个消费者线程程共享一个初始为空、固定大小为maxbuf的缓存(缓冲区)。生产者的工作是向缓冲区中存数据,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等待,如此反复; 同时,只有缓冲区不空时,消费者才能从中取出消息,一次消费一个数据(即将其从缓存中移出),否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。...原创 2018-02-08 15:41:04 · 360 阅读 · 0 评论 -
POSIX共享内存-------共享计数器
问题描述父子进程共享一个计数器,每次父进程或子进程可以给计数器加一。简单实现#include<iostream>#include<unistd.h>#include<stdio.h>#include<sys/wait.h>using namespace std;struct Shared{ int count;...原创 2018-02-13 11:37:06 · 390 阅读 · 0 评论 -
POSIX信号量-------多个生产者&单个消费者
问题描述有多个线程:多个生产者线程和一个消费者线程程共享一个初始为空、固定大小为maxbuf的缓存(缓冲区)。多个生产者的工作是向缓冲区中存数据,只有缓冲区没满时,每次只能选择一个生产者把消息放入到缓冲区,否则必须等待,如此反复; 同时,只有缓冲区不空时,消费者才能从中取出消息,一次消费一个数据(即将其从缓存中移出),否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费...原创 2018-02-12 11:32:55 · 797 阅读 · 0 评论 -
POSIX 线程-------线程库
创建缺省线程如果未指定属性对象,则该对象为 NULL,系统会创建具有以下属性的缺省线程: ■ 进程范围 ■ 非分离 ■ 缺省栈和缺省栈大小 ■ 零优先级pthread_create语法使用 pthread_create() 可以向当前进程中添加新的受控线程。int pthread_create(pthread_t *tid, const pthread_attr_t...原创 2018-02-02 17:53:00 · 305 阅读 · 0 评论 -
Tstress
用几天时间写了个压测工具,代码链接:Githubhttps://github.com/tangyuanzong/Tstress/tree/master参数说明: -T 总线程数 -S HTTP总连接数 -C 并发连接数 H / S 每秒建立的HTTP数目...原创 2019-01-25 21:15:36 · 529 阅读 · 0 评论 -
epoll 实现Chat
服务端main函数:int main(int argc,char ** argv){ int sockfd; if((sockfd = socket_bulit())==-1){ printf("built socket error\n"); return 0; } printf("wait for client connec...原创 2018-04-03 14:27:52 · 274 阅读 · 0 评论 -
Linux内核-------同步机制(二)
信号量的分类内核信号量,由内核控制路径使用用户态进程使用的信号量,这种信号量又分为POSIX信号量和SYSTEM V信号量。POSIX信号量又分为有名信号量和无名信号量 。有名信号量,其值保存在文件中, 所以它可以用于线程也可以用于进程间的同步。无名信号量,其值保存在内存中。信号量操作P(sv):如果sv的值大于零,就给它减1;如果它的值为零,就挂起该进程的执行V(sv):...原创 2018-02-10 12:21:28 · 269 阅读 · 0 评论 -
Linux内核-------同步机制(一)
一,介绍在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实像多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_semapho...原创 2018-02-01 19:11:52 · 343 阅读 · 0 评论