排序:
默认
按更新时间
按访问量

vfork 挂掉的一个问题

在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。 我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现...

2016-05-22 20:12:43

阅读数:562

评论数:0

Linux 多线程应用中如何编写安全的信号处理函数

关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。 0 评论 周 婷 (zhouting@cn.ibm.com), 软件工...

2016-04-13 16:26:01

阅读数:468

评论数:0

Linux多线程中使用信号-1

在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些...

2016-04-12 17:58:49

阅读数:426

评论数:0

Linux多线程同步之读写锁

读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步, 和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入临界区的...

2016-03-31 14:24:40

阅读数:1176

评论数:0

Linux多线程同步之互斥量和条件变量

1. 什么是互斥量        互斥量从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所以在该互斥锁上的阻塞线程都会变成可进行状态,...

2016-03-30 23:30:50

阅读数:983

评论数:0

使用互斥量控制Linux线程同步

一、什么是互斥量 互斥量是另一种用于多线程中的同步访问方法,它允许程序锁住某个对象,使得每次只能有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁。 二、互斥量的函数的使用 它们的定义与使用信号量的函数非常相似,它们的定...

2016-03-30 14:01:56

阅读数:432

评论数:0

使用信号量控制Linux线程同步

linux中两种基本的同步方法是信号量和互斥量。这两种方法很相似,而且它们可以相互通过对方来实现。 信号量概述 下面介绍用信号量进行同步。 信号量概念由荷兰科学家Dijkstra首先提出。信号量是一个特殊类型的变量,它可以被增加或者减少。但对其的关键访问被保证是原子操作,即...

2016-03-29 13:38:17

阅读数:527

评论数:0

僵尸进程的产生和避免

僵尸进程的产生: 当一个进程创建了一个子进程时,他们的运行时异步的。即父进程无法预知子进程会在什么时候结束,那么如果父进程很繁忙来不及wait 子进程时,那么当子进程结束时,会不会丢失子进程的结束时的状态信息呢?处于这种考虑unix提供了一种机制可以保证只要父进程想知道子进程结束时的信息,它就可...

2016-03-01 00:22:10

阅读数:644

评论数:0

waitpid非阻塞时的用法

我们用这个程序和输出结果分析一下waitpid的用法和特点。我们将waitpid设置成WNOHANG非阻塞父进程状态; #include #include #include #include #include int main(void) { pid_t pid, wpid; i...

2016-02-29 23:26:58

阅读数:2217

评论数:0

Linux进程间通信(一)管道

一个进程在管道的尾部写入数据,另一个进程从管道的头部读出数据。 管道包括无名管道和有名管道两种,前者只能用于父进程和子进程间的通信,后者可用于运行于同一系统中的任意两个进程间的通信。 管道通信-特点#include #include #include #include #include...

2016-01-31 14:25:30

阅读数:470

评论数:0

Linux进程间通信(二)FIFO

1.从FIFO中读取数据: 约定:如果一个进程为了从FIFO中读取数据而阻塞打开了FIFO,那么称该进程内的读操作为设置了阻塞标志的读操作。 (1)如果有进程写打开FIFO,且当前FIFO为空,则对于设置了阻塞标志的读操作来说,将一直阻塞下去,直到有数据可以读时才继续执行;对于没有设置阻塞标志的读...

2016-01-30 17:22:53

阅读数:418

评论数:0

sync、fsync、fdatasync三个函数以及O_SYNC标志位的区别

在大多数的unix/linux对磁盘io的写操作都是通过缓存来完成的,基本的原理如下:当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队...

2016-01-19 19:43:30

阅读数:482

评论数:0

系统调用跟我学之wait, waitpid函数

1.7 背景 在前面的文章中,我们已经了解了父进程和子进程的概念,并已经掌握了系统调用exit的用法,但可能很少有人意识到,在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经...

2015-09-14 23:45:01

阅读数:410

评论数:0

《APUE》读书笔记—进程控制

本章介绍Unix的进程控制,包括进程创建,执行程序和进程终止,进程的属性,exec函数系列,system函数,进程会计机制。 1、进程标识符   每一个进程都有一个非负整数标识的唯一进程ID。ID为0表示调度进程,即交换进程,是内核的一部分,也称为系统进程,不执行任何磁盘操作。ID为1的进程为...

2015-09-07 20:27:27

阅读数:294

评论数:0

linux中fork()函数详解(实例讲解)

原帖地址:http://blog.csdn.net/jason314/article/details/5640969  一、fork入门知识      一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的...

2015-09-06 23:55:18

阅读数:276

评论数:0

从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目:       给出如下C程序,在linux下使用gcc编译: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include &...

2015-09-06 18:03:13

阅读数:296

评论数:0

fork函数总结

在Unix/Linux中用fork函数创建一个新的进程。进程是由当前已有进程调用fork函数创建,分叉的进程叫子进程,创建者叫父进程。该函数的特点是调用一次,返回两次,一次是在父进程,一次是在子进程。两次返回的区别是子进程的返回值为0,父进程的返回值是新子进程的ID。子进程与父进程继续并发运行。如...

2015-09-06 17:39:24

阅读数:449

评论数:0

Linux启动新进程的几种方法及比较

有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。 一、system函数调用 system函数的原型为...

2015-07-13 18:22:28

阅读数:375

评论数:0

Linux进程间通信——使用信号

一、什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。 信号是UNIX和Li...

2015-07-13 17:58:18

阅读数:367

评论数:0

linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸

一、程序存储       经常被问到进程与线程的区别,今天有人问程序与进程的区别,一下子还真没反应过来   。程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。反映了一个程...

2015-03-05 16:25:17

阅读数:722

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭