![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
yes_I_am
这个作者很懒,什么都没留下…
展开
-
wait和waitpid的区别
首先奉上这两个函数 pid_t wait(int *statloc); pid_t waitpid(pid_t pid, int *statloc, int options); wait和waitpid都是用来处理终止进程的,这两个函数都返回两个值:已终止的进程ID号,以及通过statloc指针返回的子进程的状态(一个整数)。如果调用wait()的进程没有终止的进程而还有一个原创 2016-01-23 00:10:12 · 2477 阅读 · 0 评论 -
多线程与线程同步
线程概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程原创 2016-07-25 16:28:52 · 879 阅读 · 1 评论 -
C++ 堆栈
此处所讨论的堆栈不同于数据结构中的堆栈,在数据结构中存在堆和栈的概念,栈是一种先进后出的数据结构,堆则是一种排序方式,而在内存分配中也存在堆(heap)和栈(stack)的概念,与数据结构中的概念不同,这里简单说明在内存分配中的堆栈之间的不同。在这之前先看一下程序在运行时内存的分配图 图片来自于网络 一、内存分配方式 1、全局变量(extern变量)和所有静态变量(static变量),是由原创 2016-07-17 10:18:41 · 801 阅读 · 0 评论 -
在accept前调用fork和accept后调用fork的区别
在linux网络编程中并发服务器的最简单的方式就fork()子进程处理连接,父进程继续等待新的连接完成。而在fork()子进程的顺序上有在accept之前和accept之后两种。通过fork()创建子进程时,子进程继承父进程环境和上下文的大部分内容的拷贝,其中就包括文件描述符表。(1)对于父进程在fork()之前所建立的连接,子进程都会继承,与父进程共享相同的文件偏移量。系统文件表位于系统原创 2016-02-03 10:05:49 · 1897 阅读 · 1 评论