程序和进程的关系
- 一个程序可能对应多个进程
- 一个进程可能包含多个程序,比如一个程序依赖多个其它动态库时
多线程示例
打印:
多线程-终止示例在多线程里,一般都是自定义结束函数来结束进程,示例如下:
多线程的同步
多个线程执行时,有可能某个线程会需要等到另一个线程的结果才能执行,可以通wait()成员函数实现,等待另一个线程完成,如下图所示:多线程的互斥QMutex当一个全局的共有资源被多个线程同时调用时,则称该资源为临界资源,并且该资源需要使用QMutex互斥类,来保证线程间的互斥,避免同一时刻访问临界资源而出现意想不到的问题.其中QMutex中关键成员函数如下:
示例:
如果有多个不同的临界资源时,比如: g_res1, g_res2, g_res3...g_resn
则对应的线程锁也同样需要分配相同序号: g_mutex1, g_mutex2, g_mute3...g_mutexn注意:如果多个不同的临界资源只对应一个线程锁的话,则会降低并发效率
多线程的信号量QSemaphore
信号量是特殊的线程锁,内部通过一个资源值,来使得N个线程可以同时访问临界资源其中QSemaphore中关键成员函数如下:示例:
文章来源: