java中进程是什么意思?线程有哪些用途?

BSO 2020-11-17 16:28:46 java常见问答 6458

java中关于进程和线程的知识还是很容易混淆的,两者的相似之处有很多,都包含了非常细致的知识点。关于进程的含义你都了解吗?一起来看看吧。

一、首先说一下,进程和线程的概念

进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存)

线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源);

在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。

多进程: 在操作系统中能同时运行多个任务(程序)

多线程: 在同一应用程序中有多个功能流同时执行

为什么已经有了进程,还会需要线程呢?

主要原因如下:

许多应用程序中,同时发生着多个活动。将这些应用程序分解成多个准并行的线程,程序设计的模型会变成更加简单。

由于线程比进程进行更加轻量,创建和取消更加容易。

如果程序是IO密集型,那么多线程执行能够加快程序的执行速度。(如果是CPU密集型,则没有这个优势)在多CPU系统中,多线程是可以真正并行执行的。

二、然后说一下,线程的主要用途

⑴利用它可以完成重复性的工作(如实现动画、声音等的播放)。

⑵从事一次性较费时的初始化工作(如网络连接、声音数据文件的加载)。

⑶并发执行的运行效果(一个进程多个线程)以实现更复杂的功能

三、介绍一下线程的主要特点

⑴不能以一个文件名的方式独立存在在磁盘中;

⑵不能单独执行,只有在进程启动后才可启动;

⑶线程可以共享进程相同的内存(代码与数据)。

四、多线程原理

同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换),如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象

那么,如果线程非常非常多,会发生什么情况?

CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源,并且每条线程被调度执行的频次会降低(线程的执行效率降低)。

java中进程的概念还是比较好理解的,线程中所包含的知识可以看出是非常繁琐的。如果你对java知识感兴趣,想要了解更多java常见问题,敬请关注奇Q工具网。

推荐阅读:

java多线程详解,进程和线程的区别是什么?

进程调度的算法是指什么?有何作用? 

进程通信的方式是什么?有哪些方式?