Pthreads Primer
本书组织
C1: Introduction
C2: Concepts
C3: Foundation
C4: Lifecycle
C5: Scheduling
C6: Synchronization
C7: Complexities
C8: TSD
C9: Cancellation
C10: Signals
C11: Details
C12: Libraries
C13: Design
C14: Language
C15: Tools
C16: Performance
C17: Hardware
C18: example
SMP(share memory symmetric multiprocessors),
MT可以充分利用SMP的硬件优势
本书只讨论pthread模型,它可用任何语言实现。不比较与win/os/2的区别。
性价比的追求,cpu/mem/外设的性能差距,使得SMP发挥作用。特别是CPU密集型的应用。
一个线程就是一个控制流。多现程之间共享一片内存。是在一个地址空间里遵循并发执行的一种方法。
System Calls
Signal
Concurrency 并发
Synchronization 避免突然地破坏其他县陈正在访问的数据
Scheduling 不是问题,总是按你想的那样工作
那些程序需要用MT?
MT的价值
充分利用多处理器优势
代替进程间通信
增加响应率
增加吞吐量
简化实时处理
简化信号处理
充分利用系统资源
。。。
共享内存可以做任何事,只是不好用和比较慢。
线程标准
POSIX
WIN32 OS/2
有针对Win32的posix开源库
Process Structure 进程结构
Thread Structure 线程结构
系统调用的过程
signal的操作
signal的handler有点像回调函数,sigaction(), sigprocmsk()
线程的生命周期
exit()进程退出
main()如果执行到底,间接调用exit()
任何一个县城执行到底,间接调用pthread_exit()
挂起线程
取消线程
pthread_cancel()