线程基本操作 (2)线程大纲
线程中包含的内容:
1,线程概念 (线程和进程对比),线程的标识
2,线程的创建
3,线程的终止与回收 (栈的清理) (线程的取消)
4,线程的取消
5,线程的分离
6,线程属性 (线程同步的属性)
7,可重入
8,线程的安全
9,线程同步
10,线程与信号 (线程与fork)
会话,用于承载进程组.
shell就是一个会话,就会产生进程组.
线程就是一个正在运行的函数.
程序中,至少有一个函数在运行.
main函数就是一个main线程.
main线程就是和其他线程一样平等的.
创建出的线程就是兄弟,要平等对待.
线程在同一个地址空间内,所以线程资源是共享的.
线程是标准化后,才进行创作的,所以线程会更加规范.
现在的一些库,都要支持多线程并发,如果不支持,库中会有标注.
线程的标准有很多,用的较多的是 POSIX 标准.
它是一套标准,而不是实现. 相当于协议.
OPENMP也是标准.里面也有线程,部分的规定,和POSIX是不同的...
比如: POSIX中规定,线程标识是 pthread_t类型的...
实现的时候,可能是结构体,可能是指针,可能是整形数.各个系统是不一样的.
进程就是容器,
用于承载线程.
信号和多线程混用要慎重...
不要大范围混用,可以在模块里,小范围混用.
因为两者都很难用好...
多线程比信号要简单.
信号用起来约束较多: 信号处理函数要越简单越好,里面不能用io,不能用不可重入函数...
只能用计算和系统调用.
linux解决异步方法:
1,多线程;
2,信号;