1.线程概念
线程是一种轻量级的单位。与进程最大的不同是线程没有系统资源。线程是操作系统调度的最小单位,可以理解为一个进程是由一个或多个线程组成的。在操作系统内核中,是按照线程作为调度单位来调度资源的。在一个进程内部,多个线程之间的资源是共享的。即如果一个进程内部的所有线程拥有相同的代码地址空间和数据空间,则任意一个线程都可以访问其他线程的数据。
进程就是一个正在运行的程序。进程可以认为是线程的集合。线程是进程内部的一个实体,在一个进程内各线程共享代码和数据。
2.进程和线程对比
(1)资源分配不同。进程拥有独立的内存和系统资源,而在一个进程内部,线程之间的资源是共享的,系统不会为线程分配系统资源。
(2)工作效率不同。进程拥有系统资源,在进程切换时,操作系统要保留进程占用的资源;
而线程的切换则不需要保留资源,切换效率高。
(3)执行方式不同。 线程有程序运行的入口地址,但是线程不能独立运行。由于线程不占用系统资源,所以线程必须放在进程中。进程可以被操作系统直接调度。在一个进程内部的多个线程可以共享资源和调度,不同进程之间的线程资源是不能直接共享的。