一 线程的基本概念
一个线程就是一个"执行流".每个线程之间都可以按照顺序执行自己的代码.多个线程之间"同时"执行着多分代码.
线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分配的基本单位,线程自己不拥有系统资源,而是一个进程中的多个线程共用一份线程.一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行.
优点:
1.易于调度
2.提高并发性:通过线程可方便有效地实现并发性.进程可创建多个线程来执行同一程序的不同部分.
3.开销少:创建线程比创建进程要快,所需开销很少.
4.利于充分发挥多处理器的功能. 通过创建多线程进程,每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行.
二 进程和线程的区别
1.进程包含线程
2.进程有自己独立的内存空间和文件描述符表,同一个进程中多个线程之间,共享同一份地址空间和文件描述符表
3.进程是操作系统资源分配的基本单位,线程是操作系统调度执行的基本单位
4.进程之间具有独立性,一个进程挂了,不会影响别的进程.同一个进程里的多个线程之间,一个线程挂了,可能会导致整个进程挂掉,影响其他线程.
三 进程和线程的联系
1.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程
2.资源分配给进程,同一个进程的所有线程共享该进程的所有资源.
3.处理机分给线程,即真正在处理机上运行的线程.
4.线程在执行过程中,需要协作同步.不同进程的线程要利用消息通信的方法实现同步.线程是 指进程内的一个执行单元,也是进程内的可调度实体.