【linux多线程】自学笔记
来源:互联网 发布:事业单位上岸经验知乎 编辑:程序博客网 时间:2024/05/27 19:27
1.多线程运行顺序:
单个进程内是顺序进行的。
多线程中子线程的执行是在主线程有空闲的条件下。即,如果主线程忙,或者是没有执行等待那么,子线程是不会执行的。
从操作系统调度上看:
单核单CPU:各个线程是交替执行的。系统不停地在各个线程之间切换,每个线程只有在系统分配给它的时间片内才能取得CPU的控制权,执行线程中的代码。
多核多CPU:可并行,可交替。
2.线程终止:
两种方法终止进程:第一种通过return从线程函数返回;第二种通过调用函数pthread_exit
使线程退出。但是有两种特殊情况:
第一种:在主线程中,如果从main函数返回或调用了exit函数退出主线程,整个进程终止,
此时进程中所有线程也终止。
第二种:在主线程中,调用pthread_exit函数,仅仅是主线程消亡,进程不会结束,进程内
的其他进程不会终止,直到所有线程结束,进程才会结束。
3.线程终止时线程间的同步问题:
一般情况下,
进程中各个线程的运行独立;
进程中各个线程的终止独立:不会相互通知,也不会影响其他线程。
终止的线程所占用的资源不会随着线程的终止而归还系统,而是仍为线程所在的进程持有。
4.等待方:
一个线程只能被一个线程等待,否则,第一个接收到信号的线程成功返回,其余调用pthread_join的线程返回错误代码。
被等待方:
被等待的线程应该处于可join的状态,即非DETACHED状态。处于DETACHED状态的线程无法由pthread_join同步。
5.私有数据:
多线程环境下,进程内的所有线程共享进程的数据空间,因此全局变量为所有线程共有。
- 【linux多线程】自学笔记
- 多线程自学笔记
- 黑马程序员--自学笔记--多线程
- Linux C++ 自学笔记
- Linux自学笔记
- linux 中断自学笔记
- 【linux管道】自学笔记
- linux自学笔记
- 自学Linux笔记杂
- 自学linux笔记
- 自学linux从零开始(自学笔记①)
- 自学Linux从零开始(自学笔记③)
- 自学Java系列 笔记4 多线程 1
- 自学Java系列 笔记4 多线程 2
- 自学 java 笔记 day11(多线程)
- 自学 java 笔记 day12(多线程)
- 传智播客Linux自学笔记一
- 传智播客Linux自学笔记二
- Delphi创建虚拟桌面实现后台调用外部程序
- 关于a标签的虚线问题
- 优秀程序员的十个习惯
- MySQL时间计算
- [Python]GUI--列出某个目录下的文件
- 【linux多线程】自学笔记
- 图像处理-机器学习-研究团体-软件-期刊书籍资源整理
- PHP解析URL并得到URL中的参数
- EL表达式详
- 自定义设置软件的提示声音
- Ubuntu安装Goldendict
- 禁用双击选择文本, css方法
- 链表应用之-----整理音乐
- Delphi实现非模态主窗口最小化子窗口不最小化