进程线程
liuge
我们的征途是星辰大海
展开
-
APUE——pthread_cond_wait深度分析
写了点关于pthread_cond_wait和signal的心得原创 2020-05-25 13:22:18 · 1528 阅读 · 2 评论 -
APUE——信号与线程
APUE原文 Linux 多线程应用中如何编写安全的信号处理函数 LinuxThread与NPTL 多线程下慎用sigwait linux中使用信号–sigwait()和pthread_sigmask() 1. 信号与线程三个函数 利用sigwait,sigwaitinfo,pthread_sigmask函数可以解决如下问题 以线程同步的方式,处理异步信号 在指定的线程中处理信号 信号与线程主要涉及如下三个函数: #include <signal.h> int sigwait(const s原创 2020-05-21 09:58:46 · 359 阅读 · 1 评论 -
APUE——线程取消
APUE原文 线程取消链接 1. 线程取消过程 先描述一下取消一个线程的过程: 其他线程通过调用pthread_cancel()函数,向目标线程发送取消请求(cancellation request)。 取消请求发出后,根据目标线程的cancel state来决定取消请求是否会到达目标线程:pthread_setcancelstate a. 如果目标线程的cancel state是PTHREAD_CANCEL_ENABLE(默认),取消请求会到达目标线程。 pthread_setcancelstat原创 2020-05-21 10:00:48 · 153 阅读 · 0 评论 -
APUE——线程私有数据
APUE链接 线程私有数据链接1 pthread_once链接 1. 线程私有数据 进程中的所有线程都可以访问进程的整个地址空间。除了使用寄存器以外,线程没有办法阻止其他线程访问它的数据,线程私有数据也不例外 线程私有数据(也称线程特定数据)是存储和查询与某个线程相关的数据的一种机制。把这种数据称为线程私有数据或线程特定数据的原因是:希望每个线程可以独立地访问数据副本,而不需要担心与其他线程的同步访问问题。 errno被重新定义为线程私有数据。这样,一个线程做了设置errno的操作并不会影响进程中其他线程的原创 2020-05-21 10:01:29 · 360 阅读 · 0 评论 -
APUE——线程控制之线程和fork
线程控制之线程和fork fork()函数与Linux中的多线程编程 使用 Mutex 实现进程间同步 fork 子进程通过继承整个地址空间的副本,也从父进程那里继承了所有互斥量、读写锁和条件变量的状态。如果父进程包含多个线程,子进程在fork返回以后,如果紧接着不是马上调用exec的话,就需要清理锁状态。 在子进程内部只存在一个线程,它是由父进程中调用fork的线程的副本构成的。如果父进程中的线程占有锁,子进程同样占有这些锁。问题是子进程并不包含占有锁的线程的副本,所以子进程没有办法知道它占有了哪些锁并原创 2020-05-21 10:02:06 · 176 阅读 · 0 评论 -
APUE——进程终止
abort 与return exit的关系 进程终止 linux进程控制函数–fork,exec,exit,wait,sleep 1. 进程终止方式 进程有下面5种正常终止方式: 在main函数内执行return语句。这等效于调用exit。 调用exit函数。此函数有ISO C定义,其操作包括调用各终止处理程序(终止处理程序在调用atexit函数时登记),然后关闭所有标准I/O流等。 调用_exit或_Exit函数。ISO C定义_Exit,其目的是为进程提供一种无需运行终止处理程序或信号处理程原创 2020-05-21 10:02:24 · 172 阅读 · 0 评论 -
APUE——unix出错处理
1. errno原理 当UNIX函数出错时(系统调用),常常会返回一个负值,而且整型变量errno通常被设置为含有附加信息的一个值。 文件<errno.h>中定义了符合errno以及可以赋予它的各种常量,这些常量都以字符E开头。另外,UNIX系统手册第2部分的第1页intro(2)列出了所有这些出错常量。在Linux中,出错常量在errno(3)手册页中列出(可以使用命令man 3 errno查看)。 如果没有出错,则其值不会被一个例程清除。因此,仅当函数的返回值指明出错时,才检验其值。 任一原创 2020-05-21 10:05:24 · 178 阅读 · 1 评论 -
APUE——线程同步属性与递归锁
参考文档1 参考文档2原创 2020-05-21 10:03:01 · 217 阅读 · 0 评论