01 2013 档案
摘要:在以前的一片博文里http://www.cnblogs.com/mightofcode/archive/2012/11/19/2771216.html,我发表了我对设计模式的一点看法但是今天的一个案例又让我对设计模式又有了一点思考今天在处理这么一个问题:组件A是我以前写的,这个组件会不断被重用,而今天要写到的模块B用到了A,现在B有一个很奇葩的需求,A似乎满足不了了!,怎么办?!首先我想到的是能不能把问题简单化,绕过这个问题经过仔细的分析后,我的结论是:没法绕过去,只能硬上了,给A添加功能!在思考这个这个功能怎么在A中实现的时候,我发现这里面的逻辑很复杂,而且很特殊,后来看A代码的人一定看不懂
阅读全文
摘要: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号