1.多线程运行顺序:
单个进程内是顺序进行的。
多线程中子线程的执行是在主线程有空闲的条件下。即,如果主线程忙,或者是没有执行等待那么,子线程是不会执行的。
从操作系统调度上看:
单核单CPU:各个线程是交替执行的。系统不停地在各个线程之间切换,每个线程只有在系统分配给它的时间片内才能取得CPU的控制权,执行线程中的代码。
多核多CPU:可并行,可交替。
2.线程终止:
两种方法终止进程:第一种通过return从线程函数返回;第二种通过调用函数pthread_exit
使线程退出。但是有两种特殊情况:
第一种:在主线程中,如果从main函数返回或调用了exit函数退出主线程,整个进程终止,
此时进程中所有线程也终止。
第二种:在主线程中,调用pthread_exit函数,仅仅是主线程消亡,进程不会结束,进程内
的其他进程不会终止,直到所有线程结束,进程才会结束。
3.线程终止时线程间的同步问题:
一般情况下,
进程中各个线程的运行独立;
进程中各个线程的终止独立:不会相互通知,也不会影响其他线程。
终