当前位置:首页 > Java技术 > Java中多线程概念详解

Java中多线程概念详解

2022年11月09日 22:53:04Java技术6

    在操作系统中,两个比较容易混淆的概念是线程(thread)与进程(process)。操作系统中的进程是一个计算机程序的运行实例。计算机程序中包含了需要执行的指令,而进程则表示正在执行的指令,对同一个计算机程序可以创建多个进程。这些进程的运行状态各不相同。进程一般作为资源的组成单位。进程有自己独立的地址空间,包含程序内容和数据。不同进程的地址空间的相互隔离的。进程拥有各种资源和状态信息,包含打开的文件、子进程和信号处理器等。线程表示的是进程的执行流程,是CPU调度执行的基本单位。线程有自己的程序计数器、寄存器、堆栈和帧等。同一进程中的线程共用相同的地址空间,同时共享进程所拥有的内存和其他资源。

         引入线程的主要动机在于提高程序的运行性能。在一个程序中主要存在使用CPU和IO操作的两类计算。IO操作相对CPU运算来说比较耗时,而且很多都是阻塞式是。当一个线程所执行的IO操作被阻塞时,同一进程中的其他线程可以使用CPU来进行计算。在资源允许时,多个线程可以同时进行IO操作。这种方式提高了操作系统中资源的使用效率,进而提高了进程的运行性能。线程的概念在主流操作系统和编程语言中都得到了支持。不同操作系统和编程语言中的线程的使用方式有很大的区别。这对于开发跨平台的多线程程序来说是个不小的挑战。Java平台通过Java虚拟机解决了跨平台的问题,使由相同API开发的多线程程序在不同的平台上都能正确运行。

      Java标准库提供了与进程和线程相关的API。表示进程的是java.lang.Process类和创建进程的是java.lang.ProcessBuilder类。表示线程的是java.lang.Thread类。在虚拟机启动之后,通常只有一个普通线程来运行程序代码。这个线程用来启动主Java类的main方法的运行。程序在运行时可以根据需要创建新的线程并启动线程的运行。除了普通线程之外,还有一类线程是守护线程(daemon thread)。守护线程一般在后台运行,提供程序运行时所需的服务。当虚拟机中运行的所有线程都是守护线程时,虚拟机终止运行。

        Java线程API的具体实现由底层的Java虚拟机来负责提供,为了好地理解线程API的使用及多线程开发,需要对虚拟机内部的相关机制有一定的了解。

作者:jlins
来源链接:https://www.cnblogs.com/dyllove98/archive/2013/02/04/2891601.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/69020.html

分享给朋友: