Java多线程-36-多线程的概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/81989148

这篇开始学习Java中多线程这块的知识,本篇就来学习几个简单的改变,先对多线程有一个概念性的了解就好。

1.什么是线程

1)线程是程序执行的一条路径,一个进程中可以包含多个进程。

2)多线程并发执行可以提高程序的效率,可以同时完成多项工作。

如何理解呢?先看进程,我们知道不管是linux还是windows上,软件服务都是以进程在后台执行的。电脑中很多软件服务,也就是说有很多进程。那么是如何区分彼此进程呢。一般是程序执行入口后面跟着端口号来区分不同进程。每一个进程负责和计算机的操作系统打交道,连接着软件和操作系统这两头。

线程就是最小的软件服务执行单位,一个进程下可以有多个线程,多个线程共享一个进程资源去完成多项任务。多线程可以提高效率。举例一下,我们利用迅雷下载,迅雷就是多线程下载一个文件。迅雷把一个文件分成了好多份,每个线程负责下载一部分数据,同时多个线程去下载一个文件的不同部分数据,这样下载当然效率就高。再举例一个,在WebUI自动化测试中,我们写了上百个单元测试用例类,默认我们都是单例模式,一个一个去执行用例的。如果采用多线程去执行用例,结合selenium中gird的功能,就可以到达多线程执行测试用例。

2.多线程的并行和并发

1)并行就是两个任务同时进行,就是甲任务进行的同时,乙任务也在进行,这种情况需要多核CPU支持。

2)并发是指两个任务都请求执行,而处理器只能接受一个任务,就把这两个任务轮流安排执行,由于CPU反应和执行计算时间都很短,使人感觉这两个任务在同时进行。

举例解释一下,比如你,左手操作你手机和别人聊微信,右手操作你电脑和别人聊QQ,这样同时进行,这个就是并行,你就是一个超人了。如果只是在一台电脑上,先给甲聊天,然后和乙聊天,随后和甲聊天,再和乙聊天,这个就是并发。自己根据并行和并发的概念,把这两个概念区分开来,想想有什么不同。

3.Java程序运行原理

首先是Java命令启动Java虚拟机(JVM),启动了JVM等于启动了一个程序,等于启动了一个进程,该进程会启动一个主线程,然后主线程会调用某一个类的main()方法。那么,JVM是多线程进行任务处理吗?答案,是多线程。上面提到了一定会启动主线程,其实至少还会启动垃圾回收线程。我们知道,java开发人员不需要去手动处理内存管理,JVM会自动帮你做了这些事情,这个就是启动了垃圾回收线程。

接下来文章,我们开始学习Java多线程中相关类和方法的基本使用。

猜你喜欢

转载自blog.csdn.net/u011541946/article/details/81989148
今日推荐