线程:
线程是操作系统能够进行运算调度的最小单位。它包含在进程之中,是进程中实际运作单位。一个进程可以并发多个线程,每条线程并行执行不同的任务。是一个基本的cpu执行单元,它必须依托于进程存活。
进程:
进程是指一个程序在给定数据集合的一次执行过程,是系统进行资源分配和运行调用的独立单元。操作系统中正在执行的程序,也就是说,每个应用程序都有一个自己的进程
线程和进程的区别:
(1)线程共享内存空间、打开的文件,进程的内存是独立的
(2)同一个进程的线程之间可以直接交流,两个进程想通信,必须通过一个中间代理来实现
(3)创建新线程很简单,创建新进程需要对其父进程进行一次克隆
(4)一个线程可以控制和操作同一进程里的其他线程,但是进程只能操作子进程
(5)改变主线程,可能会影响其他线程,改变父进程,不影响子进程
(6)线程必须在某个进程中执行。
(7)一个进程可包含多个线程,其中有且只有一个主线程
(8)多进程共享物理内存、磁盘、打印机
多线程:
现在cpu都是多核的,使用多线程能充分利用cpu来提供程序的执行效率