linux
文章平均质量分 77
kinglee0531
这个作者很懒,什么都没留下…
展开
-
linux 多线程编程指南(六)
<br /><br />4.6.7信号控制器和异步安全 有一个类似与线程安全的概念:异步安全。异步安全操作被保证不会和被中断的操作相混。 如果信号控制器与正被中断的操作冲突,就会有异步安全的问题。例如,假设有一个程序正在printf调用的当中,一个信号发生,它的控制器也要调用printf():两个printf()的输出会交织在一起。为了避免这种结果,如果是printf被中断,控制器就不应当调用printf。 这个问题使用同步原语无法解决,因为试图的同步操作会转载 2010-10-20 17:57:00 · 525 阅读 · 0 评论 -
linux 多线程编程指南(四)
<br />2.1.11创建线程--高级特性2.1.11.1 thr_create(3T) #include int thr_create(void *stack_base,size_t stack_size, void *(*start_routine)(void *),void * arg, long flags,thread_t *newthread); size_t thr转载 2010-10-20 17:53:00 · 421 阅读 · 0 评论 -
linux 多线程编程指南(七)
<br /><br />5.4库的多线程安全等级 所有可能被多线程程序的线程调用的函数都应当是MT-Safe的。 这意味着过程可以同时正确地执行两个操作。所以,每一个被多线程程序使用的接口都应是MT-Safe。 并不是所有的库都是MT-Safe的。通常被使用的MT-Safe的库详列于表5-2中。其他的库也将最终被改写成MT-Safe的。 表5-2 一些MT-Safe库------------------------------------库转载 2010-10-20 18:01:00 · 578 阅读 · 0 评论 -
linux 多线程编程指南(三)
<br /><br />2.1.9简单的例程 在例子2-1里,一个运行在顶部的线程,创建一个辅助线程来执行fetch过程,这个辅助过程涉及到复杂的数据库查询,需要较长的时间。主线程在等待结果的时候还有其他事情可做。所以它通过执行thr_join()来等待辅助过程结束。 操作结果被当作堆栈参数传送,因为主线程等待spun-off线程结束。在一般意义上,用malloc()存储数据比通过线程的堆栈来存储要好一些。????Code Example 2-1 A Simple转载 2010-10-20 17:50:00 · 398 阅读 · 0 评论 -
linux 多进程编程
<br />1. Linux下进程的结构:<br /> Linux下一个进程在内存里有三部分的数据:数据段,堆栈段,代码段.<br /> 代码段存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们可以使用同一个代码段.<br /> 堆栈段存放子程序(注意是子程序)的返回地址,子程序的参数以及程序的局部变量.<br /> 数据段存放全局变量,常熟以及动态数据分配的数据空间(如用malloc之类的函数取得的空间.)<br /> 上面说了,数个进程运行相同的一个程序转载 2010-10-20 18:20:00 · 509 阅读 · 0 评论