![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
MatthiasDong
这个作者很懒,什么都没留下…
展开
-
Linux 线程同步---条件变量
1. 相关函数 #include pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_i转载 2015-04-12 09:06:33 · 352 阅读 · 0 评论 -
进程线程及堆栈关系的总结
进程线程及堆栈关系的总结突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存转载 2015-04-08 19:27:20 · 388 阅读 · 0 评论 -
fork,vfork和clone底层实现
ork,vfork,clone都是linux的系统调用,用来创建子进程的(确切说vfork创造出来的是线程)。先介绍下进程必须的4要点:a.要有一段程序供该进程运行,就像一场戏剧要有一个剧本一样。该程序是可以被多个进程共享的,多场戏剧用一个剧本一样。b.有起码的私有财产,就是进程专用的系统堆栈空间。c.有“户口”,既操作系统所说的进程控制块,在linux中具体实现是转载 2015-04-08 19:31:12 · 427 阅读 · 0 评论 -
用fork创建进程树
创建一个如下图所示的进程树。用getpid()和getppid()梳理其关系。要注意的是fork之后的子进程和父进程共享代码段,并且如果有写的情况下会有各自的数据段。#include#include#include#includeint main(int argc, char *argv) { printf("My pid is %d\n", getpid()); pid_原创 2015-05-16 19:53:01 · 13424 阅读 · 1 评论