java中多线程的概念_java多线程概念

java多线程一 –概念

Java线程和进程

java中多线程是同时执行多个线程的过程,线程是一个轻量级的子进程,也是最小的处理单元。在有处理多任务的需求时,会用到多进程和多线程,以此来尽可能利用CPU,提高运行效率。一个系统下可以存在多个进程,一个进程中又存在多个线程。线程使用共享内存区域,它们不分配单独的内存区域以节省内存,而且线程之间上下文切换比进程花费的时间更少,所以在多任务处理中,我们更多使用多线程。

多进程

重量级

通信成本较高

每一个进程在内存中有一个地址,虚拟机为其分配一个单独的内存区域

切换进程需要一定时间,用于保存和加载寄存器和内存映射

多线程

轻量级

线程是最小的处理单位,属于子进程

通信成本比较低

线程之间共享相同的地址空间

多线程的使用优点

由于线程是独立的,它不会阻塞用户,一个线程不会影响另一个线程的运作,并且可以对线程设置延时执行的操作。

线程的死亡,不会影响其它线程

线程可以同时执行多个,可以提高CPU的利用率。

进程和线程的具体区别

每一个进程都在内存中独享一块空间,一般来说,启动一个应用程序就是启动一个进程,一个进程中包含了多个线程,线程就是进程中的一个执行流程。一个进程中的多个线程是共享进程所占有的独立空间的,也就是说同一进程里的所有线程共享同一份资源。比如,我们使用谷歌浏览器网上冲浪,那么谷歌浏览器就是所谓的进程,我们打开一个网页的过程就其中的一个线程。

在java中,每次当我们启动java程序时,操作系统都会启动java虚拟机进程,给这个进程分配一定内存资源,启动虚拟机后虚拟机进程会创建一个主线程,该线程会从程序入口main方法开始执行。

进程和线程的主要区别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程死亡后,在保护模式下不会对其他进程产生影响。线程只是一个进程中的一次执行流程,有自己的堆栈和局部变量,但是线程没有自己的独立的地址空间。如果说进程相当于一个机器人的话,那么,线程就相当于机器人的零件,当一个线程死亡时会导致整个进程死亡,因此,进程在切换时,消耗资源较大,效率低。所以,对于一些要求同时进行并且共享某些变量的并发操作,只能用多线程,而不用多进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值