多线程的理解(理论概念篇)(一)

所有的操作系统都有进程的概念,每个执行任务就是一个进程,当一个程序进入内存运行,即变成一个进程,进程是出于运行中的程序,并且具有一定的独立执行功能,进程是系统进行资源分配和调度的一个独立单位。

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

并发性和并行性的理解:并行指在同一时刻,有很多指令在多个处理器上同时执行;并发指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。

线程的基本理解
线程是进程的执行单元,一个进程可以有多个线程。一个线程必须有一个父进程。
线程与父进程的其他线程共享进程所拥有的全部资源。因此变成更加方便,但必须更加小心,我们必须确保线程不会妨碍同一个进程中的其他线程。
线程是独立运行的,它并不知道进程中是否还有其他线程存在。线程的执行是抢占式的,也就是说。当前运行的进程在任何时候都可能被挂起,以便另一个线程可以运行。

多线程的优势:
1、多线程共享同一个进程虚拟空间。线程共享的环境包括:进程代码段、进程的共有数据等,领用这些共享内容可以很容易的进行线程之间的相互通信。
2、系统创建进程需要重新为进程分配系统资源,但是创建线程代价很小,因此使用多线程来实现多任务并发比多进程效率高。
3、java语言内置多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了java的多线程编程。

多线程的实际应用场景:
1、浏览器同时下载多张图片;
2、一个web服务器必须同时响应多个用户请求;
3、java虚拟机本身就在后台提供一个超级线程来进行垃圾回收。

参考书籍:疯狂java

版权声明:【分享也是一种提高】个人转载请在正文开头明显位置注明出处
https://blog.csdn.net/java_student_x/article/details/80613117

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值