java线程与进程的区别-Java开发中线程的掌握方法,你值得拥有!!
前言
在Java开发中线程开发是经常会用到的java线程与进程的区别,但是很多的小伙伴们对于线程的掌握并不是很熟练,下面由小编带领小伙伴们再重新学习一下!
CPU线程
CPU:4核-----------------------:
程序:静态的状态,是一些指令的集合。
程序跑起来:
进程:分配CPU,内存等等系统资源。
线程:进程中可以分为好多个同步的操作java线程与进程的区别,每一个操作就可以被称为一个线程
程序----》执行起来就是一个进程,有自己的资源(内存、CPU)------》一个进程可以划分为多个线程。每一个线程是互不影响,单独执行。
CPU:一个工厂的电力系统。
进程:一个车间。
很多个不同的工人,每一个工人都是一个线程。
真正在使用系统资源的是线程。
Java线程
一个java程序最少就有两个线程在同时执行:main和GC
线程创建的两种方式:
1、继承Thread类。----这个继承类的具体实例就是一个线程实例。
2、实现Runnable接口----这个实现类只是一个runnable的实例,需要用它创建一个线程实例,然后在启动线程
区别:Thread implements Runnable
Runnable是比Thread更灵活。因为继承是单继承,而实现接口可以多实现。
设置优先级的方法:
线程优先级范围:1-10,默认是5。
设置优先级:优先级越高,并不代表一定会先被执行,只是说明你先被执行的概率高一点而已。
sleep:让当前执行的线程进入休眠状态,到时间了自己就醒了,进入重新执行。不需要别人唤醒。
守护线程:精灵线程----守护要被守护的对象。设置守护线程一定是在线程被启动之前。
守护线程随着被守护的线程的死亡而死亡。但不是立刻死亡,而是还喘了一口气。
join
等待死亡(在哪儿被调用,谁等待)
yield
礼让线程,让出资源,让别的线程去抢占,但是结果是不确定的。只是告诉别的线程你可以抢系统资源了。