当前位置:嗨网首页>书籍在线阅读

28-进一步研究

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.8 进一步研究

单个章节只能介绍POSIX线程API编程内容的冰山一角,从好的方面看,它是个功能完备且强大的库,有很多接口可以学习。(从坏的方面看,POSIX线程过于复杂和冗余了。)很多大规模系统应用定义自己的线程接口,因为比起POSIX提供的线程API接口,如线程池和工作队列这样的机制可以为系统软件提供更相关的抽象。因此,本章介绍的线程基础是一些特定应用的最佳介绍。

如果你想深入研究Pthreads,建议你进一步阅读附录B给出的资料。man操作提供的相关资料也非常有用。

[1] 译注:协同程序(coroutines和fibers)都是指非常轻量的执行线程。可以查看http://en.wikipedia. org/wiki/Fiber_(computer_science)了解更多。

[2] 对于Linux内核而言,线程只是共享资源的进程,因此像其他进程那样,内核通过唯一PID引用每个线程。用户空间的程序可以通过gettid()系统调用获取该PID,但是该值只是在某种情况下有效。程序员应该使用Pthread ID概念来引用它们的线程。

[3] Linux支持oldstate值为NULL,但是POSIX不支持。出于可移植性考虑,程序应该传递一个有效的指针,不用的话后面可以忽略该指针。

[4] 对于pthread_setcancelstate(),给oldtype传递NULL会导致程序不可移植,虽然Linux支持NULL。