java里面线程是什么意思_JAVA中的线程是什么?

程序

程序:是静态的,JAVA代码编译后的有序代码的集合,是保存在硬盘上的。

进程

1.为什么有进程

因为最开始计算机只支持运行一个程序,但是随着计算机硬件的升级,比如说有了更多的资源,所以希望计算机同时完成多件事情,而且彼此之间互不影响。

2.什么是进程

通过CPU在一个资源集合上的一次动态处理过程。

3.进程的组成

内核态(资源):寄存器中指令(代码)的地址空间,文件和网络资源,这些是操作系统进行处理的,JAVA程序是无法直接操作硬件的,所以这部分的资源调度,JAVA程序是通过切换到内核态来完成的。

用户态(数据的处理):当程序获取到数据后,比如说TXT文件中的字符等,进行逻辑上的转换,这是用户代码完成的,这部分的操作成为用户态。

线程

1.为什么有线程

因为上面提到过进程的资源是互不影响的,所以在完成一些复杂程序的时候,资源的处理变得非常麻烦,比如说我们的游戏需要声音和画面,可以通过多个进程并发(单核)或者并行(多核)完成,但是进程间的资源是相互隔离的(独立的页表),需要通过资源的传递才可以完成,开销过大。

2.什么是线程

线程是可以共享进程资源的执行流程,也就是说进程中的用户态是运行在线程上的,线程=进程-共享资源。

3.线程的实现

–用户线程:用户空间实现,操作系统不知道的,调度,创建,销毁都是由用户态来完成的。

–内核线程:内核中实现,调度,创建,销毁都是由内核态完成的。

–轻量级进程:内核中实现,支持用户线程,每一个用户线程对应一个内核线程。

线程和进程的区别:

–进程之间的资源是独立的,线程是共享的。

–进程资源分配单位,线程是CPU调度单位。

–创建和释放线程时间比进程时间短。

总结:

JAVA中使用的轻量级进程,线程的创建和销毁是JAVA层面实现的用户线程,在windows和linux版本的JVM中,用户线程和内核线程一比一对应的,所以线程调度是由内核线程来实现的,也就是由操作系统来调度的。这样的调度方式需要切换到内核态,开销也很大,所以现在很多使用CAS等操作来代替sychornized保证数据的一致性。

标签:JAVA,什么,用户,调度,线程,内核,进程

来源: https://blog.csdn.net/weixin_42060779/article/details/110880934

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值