学习《UNIX环境高级编程》笔记

来源:互联网 发布:步科触摸屏编程软件 编辑:程序博客网 时间:2024/04/30 02:00

p96符号链接和硬链接

1、硬链接通常要求链接和文件位于同一文件系统中;

2、只有超级用户才能创建指向目录的硬链接;

3、符号链接以及它指向何种对象并无任何文件系统限制。

P327unix操作系统中的绝对时间和相对时间

Linux 的绝对时间看似简单明了,却是开发中一个非常隐晦的陷阱。而且一旦你忘了时间转换,可以想象,等待你的错误将是多么的令人头疼:如果忘了把相对时间转换成绝对时间,相当于你告诉系统你所等待的超时时间是过去式的 1970 年 1 月 1 号某个时间段,于是操作系统毫不犹豫马上送给你一个 timeout 的返回值,然后你会举着拳头抱怨为什么另外一个同步线程耗时居然如此之久,并一头扎进寻找耗时原因的深渊里。参考来源:http://blog.csdn.net/maikforever/article/details/7642659

P348递归锁和非递归锁

严格上讲递归锁只是互斥锁的一个特例,同样只能有一个线程访问该对象,但允许同一个线程在未释放其拥有的锁时反复对该锁进行加锁操作; windows下的临界区默认是支持递归锁的,而linux下的互斥量则需要设置参数PTHREAD_MUTEX_RECURSIVE_NP,默认则是不支持。

非递归锁又叫不可重入锁,如果一个线程多次获取同一个非递归锁,则会产生死锁。参考来源:http://blog.csdn.net/zouxinfox/article/details/5838861

P333线程同步中的条件变量和互斥量的使用

pthread_cond_wait,调用者把锁住的互斥量传递给该函数,函数然后自动把调用线程放到等待条件的线程列表上,对互斥量解锁。这就关闭了检查和线程进入休眠状态等条件改变这两个操作之间的时间通道,这样线程就不会错过条件的任何变化。当该函数返回时,互斥量再次被锁住,而此时观察的参数已经被赋值用完了。

0 0
原创粉丝点击