|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
LinuxC高级编程——线程 , z: D' s) C, E9 Y" ^) v( w& H# Y) n
/ i8 G( o$ _2 [! A/ ?/ N+ n宗旨:技术的学习是有限的,分享的精神是无限的。1 x& I+ [) X* X2 `$ f, t
( I) }" Q( J; ?
4 O) N. L3 v6 Y& t
一、线程基础
4 s0 S+ x h Y2 H# o+ o1 |1 N x. \6 U/ h+ N2 e
, n- P6 ^8 l: _8 u: U
main函数和信号处理函数是同一个进程地址空间中的多个控制流程,多线程也是如 此,但是比信号处理函数更加灵活,信号处理函数的控制流程只是在信号递达时产生,在处理完信 号之后就结束,而多线程的控制流程可以长期并存,操作系统会在各线程之间调度和切换,就像在 多个进程之间调度和切换一样。由于同一进程的多个线程共享同一地址空间,因此Text Segment、 Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一 个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境:
% m9 ~" g7 g4 k" T9 {4 x
T' [1 @4 c0 g* I& p
4 u4 \" @) R4 q5 b7 _
- q2 W' m1 M& O* w! f' j% A3 }. o8 c) a, T4 v) |. Z& V
, `3 g2 `) _ H/ Z8 W% H
|
|