进程和线程的概念,区别:
什么是线程????
首先,计算机所有指令的执行都是CPU运算,
CPU有规则,线程是操作系统能调度的最小单位
线程可以简单理解为一堆指令
做每一件事背后都是CPU在运算,例如画图、qq这些应用软件寄生在操作系统上
画图和qq是独立的软件,各自分一块独立的内存空间
硬盘--内存--CPU 慢--快
为了安全,画图软件的内存不能访问qq的内存
但是,qq或画图有一个整体的东西暴露给操作系统,这个整体的东西就是进程,里面包含对各种资源的调用
例如内存的管理,网卡的调用等,对各种资源管理的集合称为进程
线程:是操作系统最小调度单位,是一串指令的集合
进程:要操作CPU只能通过线程,所以必须要先创建一个线程,
简单理解,进程就是一个屋子是各种资源的集合,屋子里面的人可以认为是线程
一个进程要执行,至少需要一个线程
同一个进程里的所有线程共享同一块内存空间
进程里第一个启动的线程是主线程。
新的线程是由主线程创建,新的线程可以再创建别的线程
主线程和被创建的线程是独立平等关系。被创建之后他们就没有关系了
启动一个线程比进程快。
因为线程就是一堆指令,进程是一堆资源的集合
运行起来后都是一样的
进程与线程的区别:
1、线程共享内存空间,进程的内存是独立的
2、子线程和父线程之间共享进程的内存,数据是共享的,子进程和父进程克隆了一份内存,数据是独立的
3、同一个进程的线程之间可以直接交流,如果两个进程想通信,必须通过一个中间代理来实现
4、创建新线程很简单,创建新进程需要对其父进程进行一次克隆
5、一个线程可以控制和操作同一进程里的其他线程。但是进程只能操作子进程
6、对主线程的修改可能影响其他线程的行为,对父进程的修改不影响子进程
7、删除线程不影响同一进程里的其他线程,如果kill父进程,子进程也跟着没了