线程
什么是线程
先来说一下什么是进程,进程时一个程序的过程,负责把资源整合到一起,是一个资源单位
而线程是CPU的执行单位,一个进程内默认就会有一个控制线程,该控制线程可以执行代码从而创建新的线程
该控制线程的执行周期就代表改进程的执行周期。一个程序运行首先要申请一个内存空间这就开启了一个进程,
线程就是位于进程空间内的运行的过程,是执行的单位。主线程的结束就以为着进程结束了。
控制线程的作用就是执行代码,是进程一运行就存在的。
主进程和主线程的结束
当一个主进程开启了子进程,当主进程运行完毕,而子进程没有运行完毕,这是主进程不会关闭,他会等待子进程运行完毕,回收资源。
当一个主线程开启了子线程,当主线程运行完毕,而子线程没有运行完毕,这时主线程也不会关闭,原因是主线程关闭意味着进程关闭,进程关闭是必须等进程中所有线程都运行完的
内存空间
多进程中子进程是复制了主进程的代码,进程之间内存隔离,子进程修改参数并不会影响主进程。
多线程是在一个进程中开启多个线程,线程之间资源共享。这些线程共享一个进程的地址空间,也共享一个进程中的资源。这些线程的关系是并列的,一个线程修改进程的参数,其他进程都会受影响。
线程于进程的区别
1、线程的创建开销小于进程,创建速度快(不用向操作系统申请资源,与其他线程共享一个资源)
2、同一进程下的多个线程共享该进程的地址空间