线程与进程:
进程:是并行执行的程序在执行过程中进行分配和管理资源的基本单位。
线程:是进程的一个执行单元,比进程更小的独立运行的基本单位,也被称为轻量级进程,线程的引入减小了程序并发执行时的损耗,提高了操作系统的并发性能。
进程分为单线程进程和多线程进程,单线程微观上只有单一的执行过程。多线程进程微观上有多个执行操作。
从地址空间上看,同一进程的线程共享本进程的地址空间,但是进程之间的资源是独立的。
从资源拥有的角度来看,同一进程内的线程共享本进程的资源,如IO、内存、CPU等,但是进程之间的资源是独立的。
一个进程崩溃后,在保护模式下不会对其他进程产生影响。但是一个线程崩溃整个进程都会死掉,所以多进程要比多线程健壮、稳定。
两者关系:
1、一个线程只能属于一个进程,而一个程序可以有多个线程,但至少有多个线程。
2、资源分诶给进程,统一进程的所有线程共享该进程的所有资源。
3、CPU分给线程,即真正在CPU上运行的是线程。
在界面进行复杂处理时一般使用多线程,
线程处理
新建一个Qthread类,C++下的C++ Class,基类不能选择Widget因为线程不是控件,基类选择Qobject再改为Qthread,
函数名前的virtual代表虚函数,访问权限为保护类型。
养成关闭线程的习惯,线程号是有限的,使用quit函数关闭线程,在使用wait函数等待当前线程处理完毕,将线程彻底关闭。
在ui的主线程中进行设定好的不复杂的线程操作,并启动多线程,注意多线程的操作不能直接调用run函数,而是使用start间接调用run函数,thread.润()。
在多线程设计界面,run函数为虚函数,与主线程不在一个线程,同时设置线程完成标志信号,用于通知主线程的多线程结束,