Linux C

信号量线程同步

信号量是一种特殊类型的变量,可以被增加和减少,但是对其的访问被保证是原子操作,就算是多线程中也是如此,这样如果多个地方都试图修改信号量的值,能够保证以此进行 二进制信号量只有0和1两种取值,而计数信号...

Cygwin和Linux不同环境多线程加锁的差异

深夜本来都打算弄完睡觉,结果被一个莫名其妙的锁搞得莫名其妙,为了让同步问题明显地表现出来,主线程和子线程都加了一个sleep 1秒,使得都来不及减减操作,if判断就都为真,导致结果变成了-1,但这不是想要的结...

多线程互斥量同步

多线程在一个进程中有多个控制权,也会有多个函数同时运行,执行各自的CPU指令,就算单CPU,也可以通过线程间指令切换,达到多线程同时运行的效果 并发情况,不同线程之间指令无法确定执行先后顺序,假如这个顺序...

线程执行小例子

虽然成功地创建新的线程,但是需要知道这两个线程是否的确同时都在执行,可以通过一个小例子,这里就不考虑性能运行效率了 这里的想法就是设置一个全局变量,让它在0和1之间跳动,主线程在这个flag为0的时候,就...

线程终止

在不终止整个进程的前提下,单个线程可通过pthread_exit退出,它的定义:#include <pthread.h> void pthread_exit(void *rval_ptr) 参数rval_ptr无类型指针,与创建线程最后一个参数传给子线程的参数类型...

简单创建线程

线程和进程一样,也有唯一的线程ID,它的类型是pthread_t 在Linux里定义如下:/* Thread identifiers. The structure of the attribute type is not exposed on purpose. */ typedef unsigned long int pthr...

线程概念

线程个人觉得比进程更有必要好好钻研一把,天天配置CPU Affinity,天天给每个线程绑定对应的Core ID,却没有从根本上弄明白机理,是一件十分尴尬的事情,无脑的东西不是应该崇尚的,APUE上关于线程概念写的十分漂...

信号

Linux里信号是系统响应了某些条件而生成的一个事件,捕获到该信号的进程会相应地采取一些行动;信号是由于某些错误条件造成的,比如内存段冲突,浮点处理器错误或者非法指令等;它们由shell和终端处理器生成来引...

僵尸进程

子进程是父进程调用fork生成的,如果父进程在子进程之前结束,那么对于对应的父进程都已经结束的所有子进程,它们的父进程都会变成init进程,也就是这些子进程被init进程领养;在一个进程结束时,内核会逐个检查...

进程等待

通过调用fork创建了一个子进程,通过返回值来判断,但始终无法并不知道结束顺序,比如下面在两个进程中,最后都分别执行message内容,并sleep 1秒钟,不过子进程执行了3次,而父进程仅仅执行一次,就会出现奇怪的...

fork多进程

每个进程都有一个非负整数的PID,可以通过下面函数返回#include <unistd.h> //进程ID pid_t getpid(void); //父进程ID pid_t getppid(void); 而调用fork函数可以创建新进程,即子进程;fork被调用一次,...

标准IO库缓冲区

看到标准IO库,总会不自然地往回翻文件IO的部分 文件IO里的read,write都是内核态系统调用,依赖于操作系统来对文件进行读写,虽然速度快,但都是不带缓冲的,而且之前有写IO的效率,CPU用时还与其中一个参数每次...

延迟写

传统UNIX实现在内核中设有缓冲区高速缓存或者页面高速缓存,大多数磁盘IO都通过缓冲进行;当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是...

十个值得关注的c开源项目

前几天让同事有福推荐点开源软件研究下,随口给我推荐了cJSON,然后其它还有一些都写在了他的个人主页上,我就直接转过来了,当然转载的要厚道,有兴趣可以关注他写的其它内容,传送门:http://youfu.xyz 这个文...

如何动手更solid

Boss有句口头禅:“XXXX做得不solid”!由于这个[‘salid’]读音很发人深省因此在我们同事之间广为流传! 今天在调试的时候,很流利地重写了一些代码,令人费解的是死活不出结果,自我感觉应该很solid呀,刚刚才发现...

cJSON库之解析json部分

cJSON是一个处理json的开源C库,它有构造json和解析json文件两部分,由于还没完全摸索完,先将解析json这部分钻研下 处理json是一个用的比较多的过程,用脚本语言的话应该python最简单了,内置字典类型,想得到js...

浙ICP备16024533号

浙公网安备 33010802007459号