一、什么是线程(thread)什么是进程?
1.线程:操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。是一串指令的集合;
一个线程指的是进程中一个单一顺序的控制流,一个进程中是可以并发多个线程,每个线程并行执行不同的任务。
2.进程:以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理,网络接口的调用等,对各种资源管理的集合,就可以称为进程
进程要操作cpu,必须先创建一个线程,所有在同一个进程里的线程是共享同一块内存空间的。
注意:
1.进程本身不能够执行
2.进程和线程不能比较谁快谁慢,两个没有可比性,进程是资源的集合,线程是真正执行任务的,进程要执行任务也要通过线程
3.启动一个线程比启动一个进程快
二、进程和线程的区别
1.线程共享内存空间,进程的内存是独立的
2.线程可以直接访问进程的数据段;进程有自己的父进程数据段的副本
3.同一个进程之间线程可以互相交流,两个进程想要通信,必须通过一个中间代理来实现
4.创建一个线程很简单,创建一个新进程需要对其父进程做一次克隆
5.一个线程可以控制和操作同一个进程里的其他的线程,但是进程只能操作子进程
6.改变一个主线程可能会影响到其他线程的运行,对父进程的修改不会影响到子