java 线程 cpu_Java线程与CPU线程的区别都有哪些?

原标题:Java线程与CPU线程的区别都有哪些?

aa99868403dd220e2fa34b374f061c67.png

前言

在Java开发中线程开发是经常会用到的,但是很多的小伙伴们对于线程的掌握并不是很熟练,下面由小编带领小伙伴们再重新学习一下!

CPU线程

CPU:4核-----------------------:

程序:静态的状态,是一些指令的集合。

程序跑起来:

进程:分配CPU,内存等等系统资源。

线程:进程中可以分为好多个同步的操作,每一个操作就可以被称为一个线程

程序----》执行起来就是一个进程,有自己的资源(内存、CPU)------》一个进程可以划分为多个线程。每一个线程是互不影响,单独执行。

CPU:一个工厂的电力系统。

进程:一个车间。

很多个不同的工人,每一个工人都是一个线程。

真正在使用系统资源的是线程。

Java线程

一个java程序最少就有两个线程在同时执行:main和GC

线程创建的两种方式:

1、继承Thread类。----这个继承类的具体实例就是一个线程实例。

2、实现Runnable接口----这个实现类只是一个runnable的实例,需要用它创建一个线程实例,然后在启动线程

区别:Thread implements Runnable

Runnable是比Thread更灵活。因为继承是单继承,而实现接口可以多实现。

设置优先级的方法:

线程优先级范围:1-10,默认是5。

设置优先级:优先级越高,并不代表一定会先被执行,只是说明你先被执行的概率高一点而已。

sleep:让当前执行的线程进入休眠状态,到时间了自己就醒了,进入重新执行。不需要别人唤醒。

守护线程:精灵线程----守护要被守护的对象。设置守护线程一定是在线程被启动之前。

守护线程随着被守护的线程的死亡而死亡。但不是立刻死亡,而是还喘了一口气。

join

等待死亡(在哪儿被调用,谁等待)

yield

礼让线程,让出资源,让别的线程去抢占,但是结果是不确定的。只是告诉别的线程你可以抢系统资源了。

线程的声明周期:

1、新建:new出来一个线程对象的时候。

2、就绪:当调用start方法的时候,启动了线程,线程可以去抢占资源了。

3、运行:线程已经获取到CPU的资源,Run方法正在被执行。

4、阻塞:run方法没有执行完 ,而丧失了CPU的使用权,就会进入阻塞状态。----->CPU空出来之后,并且唤醒了之后,重新进入就绪状态去抢占CPU资源。

5、死亡:run方法执行完毕。或者出现一些不可控的外部因素致使程序崩溃等,线程也会死亡 。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值