
系统编程
文章平均质量分 75
zzz1_1zzz
这个作者很懒,什么都没留下…
展开
-
多进程与多线程
关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更转载 2017-08-16 13:45:43 · 468 阅读 · 0 评论 -
信号量与互斥锁之间的区别
1. 互斥量用于线程的互斥,信号量用于线程的同步。 这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。原创 2017-07-26 10:46:41 · 878 阅读 · 0 评论 -
文件锁以及多路复用方式解决多个用户对一个文件的操作
一、文件锁用于多个用户共同使用或操作同一个文件。有读锁的时候可以再加读锁,不能再加写锁。有写锁的时候,不能加任何锁,加读锁时,该描述符必须是读打开,加写锁时,该描述符必须是写打开,且只在进程间有用。 使用flock(锁定文件或解除锁定)函数 头文件 #include 定义函数 int flock(int fd,int operation); 函数说明 flo原创 2017-08-10 20:11:12 · 924 阅读 · 0 评论 -
采用管道函数创建有名管道,使用select函数替代使用poll函数实验多路复用
创建两个有名管道,获取3个文件描述符(2个管道,1个标准输入),然后初始化读文件描述符,select监视文件描述符 的文件读写,管道1输出到屏幕上,管道2输出到屏幕上,标准输入‘Q’来进行判读是否退出。/*pipe_select.c*/#include#include#include#include#include#include#include#def原创 2017-08-15 15:23:51 · 1330 阅读 · 0 评论 -
实现生产组和消费者的机制,利用共享内存实现文件的打开和读写操作,PV操作。
/*sem_com.h*/#include#include#include#include#includeunion semun{ int val; struct semid_ds *buf; unsigned short *array;};/*信号量初始化(赋值)函数*/int init_sem(int sem_id,int init_valu原创 2017-08-15 15:32:34 · 1354 阅读 · 0 评论 -
浅谈如何提高服务器并发处理能力
目录 (一)什么是服务器并发处理能力(二)有什么方法衡量服务器并发处理能力1.吞吐率2.压力测试(三)怎么提高服务器的并发处理能力1,提高CPU并发计算能力(1)多进程&多线程(2)减少进程切换,使用线程,考虑进程绑定CPU(3)减少使用不必要的锁,考虑无锁编程(4)考虑进程优先级(5)关注系统负载(6)关注CPU使用转载 2017-08-29 21:13:33 · 5301 阅读 · 0 评论