一、进程和线程


1.进程
是一个程序的运行状态和资源占用【cpu】情况的描述
进程是一个程序的动态过程,指的是从代码加载到执行完毕的过程

进程的特点
a.独立性:不同的进程之间是相互独立的,互不影响,相互之间资源不共享
b.动态性:进程在系统中并不是静止不动的,而是一直处于动态
c.并发性:多个进行可以在单个处理器上同时启动,并且互不影响

多进程:一个操作系统上可以运行多个应用程序

2.线程
是进程的组成部分,一个进程可以有多个线程,每个线程去处理一个特定的子任务
例如:打开酷狗音乐----->启动了一个进程
播放歌曲:———>线程1
刷新歌词:------>线程2
播放歌曲和刷新歌词是同时进行,这两个线程并发的

线程的执行原理:线程的执行其实是抢占式的,多个线程在同一个进程中并发执行,其实就是不同的线程快速在切换【cpu快速的在不同的线程之间切换,相当于是线程在争抢cpu时间片】

多线程:在一个进程中,多个线程可以争抢式的执行,不同线程之间是资源共享的

应用:一个浏览器可以同时下载多张图片和多个视频
一个服务器可以同时处理多个用户请求


问题:为什么使用多线程编程,而不是多进程?【多线程和多进程各自的特点】
a.一个程序运行后至少要有一个进程
b.一个进程可以包含多个线程,但是至少要有一个线程,否则这个进程是没有任何意义的
c.进程间不能资源共享,但是线程之间是可以资源共享的
d.系统创建进程需要为该进程重新分配系统空间,而创建线程则相对容易的多,使用多线程比多进程效率更高
e.Java中内置了多线程编程,而没有多进程

原文地址:https://www.cnblogs.com/lsp-lsp/p/7344259.html