Java 线程和进程

什么是“进程”?

         计算机中,我们把一个任务就称为是一个进程

         比如:浏览器就是一个进程,视频播放器就是一个进程,类型的音乐播放器和Word都是进程,总之每个进程就是一个应用程序,都有独立的内存空间,现在的计算机都是支持多进程的,在同一个操作系统中可以同时启动多个进程

         在单核计算机中,一边玩游戏一边听音乐就属于多进程,同一时间点上,游戏进程和音乐进程不是同时运行的,因为计算机的cpu只能在某个时间点上做一件事,由于计算机将在“游戏进程”和“音乐进程”之间频繁的切换,人类是感受不到了,所以我们就会认为是同时在运行。

         举个例子:  我们现实生活中你可以尝试着在一张纸上一只手划圆,另一只手画正方形,这样就相当于多进程,但是我们在画的过程中大脑中某一时刻其实只有一个形状,然后来回切换。

多进程的作用:

       多进程的作用不是提高了执行速度,而是提高了cpu的使用率,进程和进程之间的内存都是独立的。

什么是“线程”?

线程是一个进程中的执行场景,一个进程可以启动多个线程

      在进程内部需要同时执行多个子任务,例如我们在使用word的时候,word可以一边打字,一边进行拼写检查,同时还可以在后台进行打印,我们把子任务统称为“线程”

1.进程和线程的关系:

一个进程可以包含一个或多个线程,但是一个进程至少有一个线程。

2.多线程: 

Java语言中内置了多线程的支持,对于大多数Java程序来说,我们说多任务,实际上就是说如何使用多线程实现多任务

3.多线程的优势:

多线程并不是为了提高执行速度,而是提高了应用程序的使用率

线程和线程之间共享“堆内存和方法区内存”  栈内存是独立的,一个线程一个栈

4.多线程的缺点:

和单线程相比,多线程的特点在于:多线程经常需要读写共享数据,并且需要同步,例如:在播放电影的时候,就必须一个线程播放视频,一个线程播放音频,两个线程需要协调,否则画面和声音就不同步,所以多线程编程的复杂度高,调式更困难

5.单线程和多线程的运行环境比较:

从中可以发现,CPU 完全可以在任务 1 和任务 2 之间来回切换,使任务 2 不必等到 5 秒再运行,系统的运行效率大大得到提升

发布了140 篇原创文章 · 获赞 35 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_30631063/article/details/104439711