Linux
文章平均质量分 75
yishizuofei
You got a dream,you gotla protect it. People can't do something tbemselves, they wanna tell you you can't do it. If you want something, go get it. Period 如果你有梦想的话,就要去捍卫它。当别人做不到的时候,他们就想要告诉你,你也不能。如果你想要些什么,就得去努力争取。就这样!
展开
-
Linux线程的使用策略
线程的基本概念线程是进程内部的一条执行序列。进程内部至少有一条执行线程,即就是main函数的执行体。进程内部可以有多条线程,main函数的线程称为主线程,包括其执行过程中调用的其他的函数,而其他线程称为函数线程,函数线程是由主线程通过系统调用函数创建的。线程与进程的区别1、进程是资源分配的最小单位,线程是系统调度(执行)的最小单位。 2、线程切换比进程切换消耗小。 3 、进程有独立的地址空间,一原创 2017-10-04 10:48:03 · 315 阅读 · 0 评论 -
Linux线程同步(一)之使用互斥量(互斥锁)
线程同步的理解当多个控制线程共享相同的内存时,需要确保每个线程看到一致的数据视图。如果每个线程使用的变量都是其他线程不会读取或修改的,那么就不存在一致性问题。同样地,如果变量是只读的,多个线程同时读取该量也不会有一致性问题。但是,当某个线程可以修改变量,而其他线程也可以读取或者修改这个变量的时候,就需要对这些线程进行同步,以确保它们在访问变量的存储内容时不会访问到无效的数据。互斥量的概念可以通过使用原创 2017-10-11 10:05:23 · 642 阅读 · 0 评论 -
Linux进程间通信(一)之无名管道(PIPE)和有名管道(FIFO)
何为进程间通信进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。简单说就是进程之间可以相互发送数据。 IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。Socket用在网络编程中。管道管道通常指无名管道,是 UNIX原创 2017-10-21 09:43:19 · 16981 阅读 · 0 评论 -
Linux线程同步(二)之使用信号量
信号量的概念1、信号量是一个特殊类型的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作,即使在一个多线程程序中也是如此。这意味着如果一个程序中有两个(或更多)的线程试图改变一个信号量的值,系统将保证所有的操作都将依次进行。但如果是普通变量,来自同一程序中不同线程的冲突操作所导致的结果将是不确定的。 2、最简单的信号量是二进制信号量,它只有0和1两种取值。还有更通用的信号量——计数信号量,原创 2017-10-12 11:42:04 · 4066 阅读 · 1 评论 -
Linux进程间通信(二)之信号量
概念1、临界资源:同一时刻,只允许一个或有限个进程或线程访问的资源。 例如: (1)多个人同时用一个笔签字,此时只能有一个人用笔写字,其他人只有等他写完才可以使用这支笔。 (2)若商场试衣间可以有3个试衣间,可以同时供3个人使用,其他人必须等到其中的试衣间没人才能使用。 (3)但是像走廊,不是临界资源,可以同时由多人同时通行。 2、临界区:访问临界资源的代码段。 3、原子操作:不可被分割原创 2017-10-23 15:02:34 · 8713 阅读 · 3 评论 -
Linux中的stat/fstat/lstat函数
函数功能通过文件名filename获取文件信息,并保存在buf所指的结构体stat中函数原型(1)函数头文件 #include <sys/stat.h> #include <unistd.h> (2)函数int stat(const char *restrict pathname, struct stat *restrict buf);根据文件名字,获取文件对应属性。一般是文件没原创 2018-03-05 18:02:01 · 835 阅读 · 1 评论 -
锁、CAS操作和无锁队列的实现
锁的机制锁和人很像,有的人乐观,总会想到好的一方面,所以只要越努力,就会越幸运;有的人悲观,总会想到不好的一方面,患得患失,所以经常会做不好事。我一直把前一个当作为我前进的动力和方向,快乐充实的过好每一天。 常用的锁机制也有两种: 1、乐观锁:假设不会发生并发冲突,每次不加锁而去完成某项操作,只在提交操作时,检查是否违反数据完整性。如果因为冲突失败就继续重试,直到成功为止。而乐观锁用到的机原创 2018-08-12 09:51:36 · 8142 阅读 · 2 评论 -
高性能服务器程序框架
服务器模型1、C/S模型 TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。但由于资源都被数据提供者所垄断,所以几乎所有的网络应用程序都很自然地采用了C/S模型:所有客户端通过访问服务器来获取所需的服务。服务器启动后,首先创建一个或多个监听socket,并调用bind函数将其绑定到服务器感兴趣的端口上,然后调用listen函数等待客户端连接。服...原创 2018-08-19 23:41:35 · 4503 阅读 · 0 评论