linux c上说:使用条件变量主要包括两个动作:一个等待使用资源的线程等待“条件变量被设置为真”;                     另一个线程在使用完资源后“设置条件为真”,这样就可以保证线程间的同步了。这样就存在一个关键问题,                     就是要保证条件变量能被正确的修改,条件变量要受到特殊的保护,实际使用中互斥锁扮演者这样一个保护者                     的角色。                              由上面的一段话我们可以知道,互斥锁与条件变量是形影不离的好朋友。可是,他们到底是怎样合作的呢?                     我们来看一段代码。 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <pthread.h> 继续阅读 >>


宋润雨 13/07/31 14:26:30
mutex体现的是一种竞争,我离开了,通知你进来。 cond体现的是一种协作,我准备好了,通知你开始吧。 互斥 […] 继续阅读 >>


高源 13/07/30 19:29:26
最近几天一直在看“进程控制”,以前老听老师,学长学姐啊说神魔进程,线程,当时完全被蒙在鼓里,神魔都不懂额。不过,进程、线程玩起来真的很装逼哦~       下面就是我对进程的初步理解:        大家都知道,操作系统最核心的概念就是进程。它与程序最大的区别就是进程是动态的,其次就在于进程是保留在内存中的代码,而程序是保存在硬盘上的可执行的代码。在Linux操作系统中,每个进程都是通过唯一的进程ID标识的。 <1>关于获取进程的各种标识符 pid_t getpid(); //获得进程ID pid_t getppid(); // 获得父进程ID pid_t getuid(); //获得进程的实际用户ID pid_t geteuid(); //获得进程的有效用户ID pid_t getgid(); //获得进程的实际组ID pid_t getegid(); // 获得进程的有效组ID <2> Linux 进程状态        其中,进 继续阅读 >>


崔姣姣 13/07/29 19:27:19
                                                       在上一篇博文中,我大概的总结了一下进程控制的操作,但今天听了女神学姐的讲座,又发现了一个有趣的问题。                     上代码:                int main(int argc, char *argv[]) { int i; for(i=0; i<2; i++) { fork(); printf("-"); } return EXIT_SUCCESS; }                                             答案是6个“-”吗?NO,其实是8个。                  继续阅读 >>


宋润雨 13/07/29 15:25:00
                                          0.进程与程序(process & program)                      进程简单的讲就是运行中的程序,它是一个动态的实体,是程序的一次执行过程。进程与程序的区别在于进程是                      动态的,程序是静态的,进程是运行中的程序,程序是一些保存在硬盘上的可执行的代码。所以很多人也说,进                      程是活的,程序是死的。linux下可通过命令ps aux或top查看当前系统中的进程。             1.进程的内存映像                     当一个程序执行时,操作系统将可执行程序复制到内存中,程序转化为进程要经过以下3个步骤:                       *内核将程序读入内存,为程序分配内存空间;                       *内核为该进程分配进程标识符(pid 继续阅读 >>


宋润雨 13/07/27 16:53:23
一、有符号数与无符号数的强制类型转换问题 上次遇到一个问题,在比较两sizeof返回值的时候出现了意想不到的错 […] 继续阅读 >>


高源 13/07/25 03:28:33
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再 […] 继续阅读 >>


高源 13/07/25 03:26:23
首先先区分一下两个容易混淆的定义: 数组指针是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首 […] 继续阅读 >>


高源 13/07/25 03:22:15
一、数据类型 1、float和double 首先先分享一下浮点数的相关知识。 浮点数是属于有理数中某特定子集的 […] 继续阅读 >>


高源 13/07/25 00:36:09
涉及的概念: 守护进程:在linux或者unix操作系统中在系统引导的时候会开启很多服务,这些服务就叫做守护进 […] 继续阅读 >>


高源 13/07/24 19:10:37