`
chong_zh
  • 浏览: 72304 次
  • 来自: 杭州
社区版块
存档分类
最新评论

Java Instrumentation浅析

 
阅读更多
原委
利用乐观的并发控制在共享内存的粒度上,所构建的高层的同步控制机制就称作Software Transactional Memory(STM)。

命名渊源起于:
【1】Transactional是指乐观的并发控制中所需要提供的事务回滚特性。而基于锁的并发控制在获得所有所需锁之前只会Block,一旦获得所有锁开始操作之后是不需要回滚的(除非出现死锁)。
【2】首先由Tom Knight在1986年提出的Hardware Transactional Memory,随后由Nir Shavit和Dan Touitou在1995年提出了完全在软件层面实现的Transactional Memory。

STM从2005年开始成为流行的热点。


优点1:性能高
理论上,最坏情况下,n个并发任务的执行时间空间复杂度都为O(n),具体的复杂度也依赖实现细节。性能通常会比基于锁的机制要好。


优点2:概念简洁
基于锁的同步机制暴露给对于高层程序员的概念抽象不太友好,久为诟病的点包括:
  • 需要设计并发段
  • 需要设计防死锁机制
  • 需要设计抢占机制,否则就有可能造成高优先级任务饥饿


缺点
在事务commit的时候如果发现Read Buffer中有旧版本数据则需要回滚事务。事务的可回滚特性使得无法进行回滚的操作无法在STM中直接实现,例如:I/O。
分享到:
评论

相关推荐

    基于 Java Instrumentation + Javaassist 的简单 RASP.zip

    Java Instrumentation 和 Javaassist 是两种在 Java 应用程序中实现动态代码修改和增强的关键工具。RASP(Runtime Application Self-Protection)是一种安全技术,它允许应用程序在运行时检测和防御潜在的攻击。在这...

    A Java Instrumentation Framework.zip

    Java Instrumentation框架是一种用于在运行时修改和分析Java应用程序的技术。这个"A Java Instrumentation Framework.zip"文件可能包含了一个实现此功能的开源项目,名为"ja-netfilter-master",它可能是该项目的源...

    基于java Instrumentation技术的数据采集探针验证.pdf

    在深入探讨基于java Instrumentation技术的数据采集探针验证之前,让我们先了解一下一些核心概念和技术背景。Java Instrumentation是Java语言提供的一个功能,它允许开发者在Java虚拟机(JVM)加载类之前或之后对类...

    Java Instrumentation笔记

    ### Java Instrumentation 深入理解 #### 一、引言 Java Instrumentation 是 Java 平台的一个强大特性,允许开发者在不修改源代码的情况下,动态地修改正在运行的 Java 应用程序的行为。这一特性最早出现在 Java SE...

    Java Instrumentation Framework.rar

    反射提供的功能,能在运行时(动态)的 ...Instrumentation是Java提供的一个来自JVM的接口,该接口提供了一系列查看和操作Java类定义的方法,例如修改类的字节码、向classLoader的classpath下加入jar文件等。

    opentelemetry-java-instrumentation:适用于Java的OpenTelemetry自动仪器和工具库

    •• ••适用于Java的OpenTelemetry Instrumentation关于该项目提供了Java代理JAR,该Java代理JAR可以附加到任何Java 8+应用程序,并动态注入字节码以捕获来自许多流行的库和框架的遥测。 您可以采用多种格式导出...

    opentelemetry-java-instrumentation 源码阅读

    **OpenTelemetry-Java-Instrumentation 源码解析** OpenTelemetry 是一个开放源代码项目,用于收集、处理和导出应用性能监控数据。它提供了标准的 API、SDK 和工具,使得开发者能够轻松地在各种语言环境中实现...

    Instrumentation of Java Bytecode for Runtime Analysis

    This paper describes JSpy, a system for high-level instrumentation of Java bytecode and its use with JPaX, our system for runtime analysis of Java programs. JPaX monitors the execution of temporal ...

    eclipselinkexporter:EclipseLink对Prometheus Java Instrumentation库的支持

    EclipseLink对Prometheus Java Instrumentation库的支持 这是Prometheus Java工具库的EclipseLink导出器。 它遵循与Prometheus Java Instrumentation库的Hibernate导出器相同的模式。 此导出器可用于从一个或多个...

    java项目实现热更源码-javaagent

    1. **编写Java Agent**:首先,我们需要创建一个实现了`java.lang.instrument.Instrumentation`接口的Java Agent。这个Agent需要包含`premain`或`agentmain`方法,用于接收Instrumentation实例,并在此基础上进行类...

    Android单元测试初探——Instrumentation

    学习Android有一段时间了,虽然前段时间对软件测试有了...在这篇文章中,我将介绍Instrumentation这种测试方法,那么什么是Instrumentation?Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而

    Android中Hook Instrumentation 的实现

    本文将详细讲解如何实现对Instrumentation的Hook,以达到控制应用程序执行流程的目的。 首先,理解Instrumentation在Android系统中的作用至关重要。Instrumentation是Android提供的一组API,用于在应用组件(如...

    java8stream源码-java-ast-instrumentation:java-ast-instrumentation

    java8流源码CS474 - 课程项目 团队成员 迈特雷伊·拉贾戈帕兰 雪莉·马修·乔治 概述 本项目的要求是: 一个检测程序,它采用一些 Java 应用程序的语法正确的源代码,并使用 Eclipse Java 抽象语法树 (AST) 解析器将...

    20201210技术分享--java动态追踪技术浅析.pptx

    Java Virtual Machine. BTrace 使用了前面提到的 Java.lang.instrument 包中的 API,允许开发者在运行时安全地添加或修改类的字节码,以便进行动态追踪。BTrace 的设计目标是提供一种简单、安全的方式来监控和诊断 ...

    instrumentation_demo.7z

    1. **创建测试环境**:在Android工程中,测试类通常位于 `src/androidTest/java` 目录下,继承自 `androidx.test.ext.junit.runners.AndroidJUnit4` 或 `android.support.test.runner.AndroidJUnit4` 类,并使用 `@...

    Iocomp.Instrumentation.WF40

    标题"Iocomp.Instrumentation.WF40"指的是一个特定的软件组件或库,它可能是一个用于开发工业自动化和数据交换应用的工具。这个组件主要包括三个部分:`Iocomp.Instrumentation.WF40.Common.dll`、`Iocomp....

    hazelcast-aware:使用 Java Instrumentation API 让您的应用程序了解 Hazelcast

    Hazelcast-Aware是一个基于Java Instrumentation API的Hazelcast扩展,可使用 Hazelcast 数据结构(分布式映射、列表、集合、队列、对象、锁、主题、执行程序、条目侦听器等),而无需与HazelcastInstance类交互。...

    java动态编译java源文件

    总的来说,Java动态编译和`Instrumentation`结合使用,能够实现强大的运行时代码修改功能,这在调试、测试、性能优化等领域都有着广泛的应用。但同时,这也需要对JVM内部机制有深入理解,以确保正确、安全地使用这些...

    java agent使用全解析

    Java agent的关键组件是Instrumentation类,该类定义在rt.jar中,提供了一些工具帮助开发人员在Java程序运行时,动态修改系统中的Class类型。在Instrumentation类中,有两个重要的方法:addTransformer和...

    TMS Instrumentation支持delphi7

    标题 "TMS Instrumentation支持delphi7" 指出的是一个专为Delphi 7开发者设计的工具集,TMS Instrumentation。这个工具集是由TMS Software公司提供的,它扩展了Delphi集成开发环境(IDE)的功能,帮助开发者更高效地...

Global site tag (gtag.js) - Google Analytics