随笔分类 - apue笔记
摘要:1 可重入,线程安全,异步信号安全之间的区别? 可重入:可以重复进入,不会引起问题(这个概念最宽) 线程安全:被多个线程使用时,不会出问题,也就是可以被多个进程重入(新函数和被终端和被中断的函数不在同一线程) 异步信号安全:可以被信号函数重入(信号处理函数和被中断的函数在同一线程) 可重入必然线程安全,必然异步信号安全 线程安全与异步信号没有关系 举个例子,一个函数使用了全局变量,那么它是不可重入的,但是如果给它加上锁(),那么它就是线程安全的,但是不是异步信号安全的,因为此时会死锁 那么如何让它成为异步信号安全的呢?在函数开头阻塞所有信号,结尾解除阻塞,那么它就是异步信号安全的了,当然,它锁
阅读全文
摘要:1,为什么程序11-1的输出与书上不同? 在我的机器上: new: pid 3558 tid 3067210560 0xb6d1eb40new: pid 3558 tid 3058817856 0xb651db40new: pid 3558 tid 3075603264 0xb751fb40main: pid 3558 tid 3075606208 0xb75206c0new: pid 3558 tid 3050425152 0xb5d1cb40 可以看出pid是一样的,也就是说是一个进程,而且tid实际上是指针,书上讲的是以前的LinuxThreads实现,现在linux使...
阅读全文
摘要:apue啃到第十章了,随着内容越来越深入,发现似乎hold不住了,因此在这里记录下我的一些心得1,signal的函数声明为什么是这样? 如果要返回一个函数指针就需要这么些,至于为什么可以参看:http://blog.csdn.net/zimingjushi/article/details/6554801,这篇文章解释了一些东西,但是依然让人很迷惑:(除了typedef外)没有更简单直观的方法吗? 我觉得这涉及到c语言语法分析的一些东西,以后有时间再仔细研究2,《不可靠的信号》中的两个例子说明了什么? a,由于信号动作被复位,嵌套的中断会引起问题 b,如果用户想用pause等待一个...
阅读全文


浙公网安备 33010602011771号