多线程 之 线程简介

什么是进程?
所有运行中的程序通常对应一个进程。当一个程序进入内存运行时,就会变成一个进程。

进程是出于运行过程中的程序,并且具有一定的独立功能。
进程是系统进行资源分配和调度的独立单位。

进程包含散打特征:
1.独立性。进程是系统中独立存在的实体,拥有自己独立的资源,每一个进程都拥有自的私有的地址空间,在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。
2.动态性。进程与程序之间的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集和。在进程中加入了时间的概念。进程具有自己的生命周期和各种不同的状态,这些概念是程序所不具备的。
3.并发性。多个进程可以在单个处理器上并发性执行,多个进程之间不会有影响。

并发性和并行性?
并发性:指的是 在同一时刻只能有一条指令执行。但是多个进程指令被快速切换使得在宏观上具有多个进程同时执行的效果。
并行性:在同一时刻有多条指令在多个处理器上同时执行。
例如:程序员在一边开发工具写程序,依次按开着参考手册,一边播放音乐。。。这就是并发性的具体体现,cpu在某个时间内只能执行一个进程,只是在用人感觉不到的速度快速切换,

多线程是什么?
多线程拓展了多进程的概念。使得同一个进程可以同时并发性处理多个任务。

线程是什么?
线程可以看做是轻量级进程。线程是进程的执行单元,就像进程在系统中的地位一样,在进程中是独立、并发的执行流。当程序被初始化,主线程就会被建立,绝大多数的应用程序(进程)来说,通常仅要求有一个主线程,但可以在创建多条顺序执行流,这些顺序执行流就是线程。

进程和线程的关系?
一个进程可以有多个线程,一个线程必须有一个父线程,它与父线程的其他线程共享该进程的全部资源。需要特别注意:需要确保线程不会妨碍同意进程中的其他线程。

多线程的优势:
1.进程之间不能共享内存,但是线程之间共享内存就很简单,
2.系统创建进程时需要为该进程重新分配系统资源,但是创建线程付出的代价会很小,因策使用多线程来实现多任务并发性多进程的小路高
3.java语言内置了多线程功能,而不是单纯地作为底层操作系统的调度方式,从而简化了java的多线程编程。
总结下来就是:一个程序要运行就必须有一个进程,一个进程中包含至少一个线程。

猜你喜欢

转载自blog.csdn.net/weixin_43247990/article/details/83384142