Java多线程控制流依赖剖析技术文献综述

 2022-10-29 20:47:02
  1. 文献综述(或调研报告):

多线程现在已经是每一台计算机的基础功能,多线程因为其巨大的优点从而一直被人们应运和发掘, 多线程的优点基本有以下几点:

1更高的运行效率。在多核CPU上,线程之间是互相独立的,不用互相等待,也就是所谓的“并行“。举个例子,一个使用多线程的文件系统可以实现高吞吐量和低延迟。这是因为我们可以用一个线程来检索存储在高速介质(例如高速缓冲存储器)中的数据,另一个线程检索低速介质(例如外部存储)中的数据,二者互不干扰,也不用等到另一个线程结束才执行;

2多线程是模块化的编程模型。在单线程中,如果主执行线程在一个耗时较长的任务上卡住,或者因为网络响应问题陷入长时间等待,此时程序不会响应鼠标和键盘等操作。多线程通过将程序分成几个功能相对独立的模块,单独分配一个线程去执行这个长耗时任务,不影响其它线程的执行,就可以避免这个问题;

3与进程相比,线程的创建和切换开销更小。使用多线程为多个客户端服务,比使用多进程消耗的资源少得多。由于启动一个新的线程必须给这个线程分配独立的地址空间,建立许多数据结构来维护线程代码段、数据段等信息,而运行于同一进程内的线程共享代码段、数据段,线程的启动和切换开销小得多。一个典型的应用例子就是Apache HTTP服务器所使用的线程池: 一个监听线程池专门用来监听是否有请求进入,另一个服务器线程池用来处理这些请求;

4通信方便。因为线程共享栈空间,可以通过线程之间共享的数据、代码和文件来进行线程之间的通信。相比之下,进程之间的通信则需要专门的消息传递机制;

5使用多线程能简化程序的结构,使程序便于理解和维护。一个复杂的进程可以分成多个线程来执行;

6更高的资源利用率。多CPU或多核计算机本来就具有执行多线程的能力,如果只使用单个线程,将无法重复利用计算机资源,造成巨大浪费。

多线程有如此多的优点,所以Java多线程依赖剖析就更加显得重要和有价值,Java多线程的路径分析就越显得关键,只有搞清楚了并发程序的路径,这样才能理解软件和硬件之间的交互。现代处理器渴望指令,为了满足他们,在多个基本块中,编译器需要找到并优化执行路径。路径配置文件提供这方面,但其高开销至今限制了动态编译器使用。“Critical Path Profiling of Message Passing and Shared-Memory”论文提出了新的技术,低开销的在线的实际路径剖面法(PPP)。PPP提高工作通过减少分析仪器工作在寒冷的路径和降低剩余仪表成本。PPP保持高精度和覆盖范围,但只有5%的平均开销(从3%到13%),它得到了编译器的青睐。当然,还有一些算法来计算或者说是得到并发程序的关键路径,“Selective Path Profiling”论文中提到,采用一个运行时,无扫描基础 的算法来计算正在执行消息传递且共享内存并行程序的关键路径。当程序正在执行或产生值得时候,算法允许开始或停止关键的路径计算。还提出了一个在线算法来计算一个变种的关键路径,称为CR关键路径的调零,减少应用程序在执行时间的测量,提高程序的选择。

综上所述,Java多线程的关键路径频率,路径的选择都是可以最终通过插装好的代码量化的,这量化的结果对Java代码的分析至关重要。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版