atomicreferencefieldupdater.html
来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 422 行 · 第 1/2 页
HTML
422 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:51:57 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>AtomicReferenceFieldUpdater (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.concurrent.atomic.AtomicReferenceFieldUpdater class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="AtomicReferenceFieldUpdater (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AtomicReferenceFieldUpdater.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="AtomicReferenceArray.html" title="java.util.concurrent.atomic 中的类"><B>上一个类</B></A> <A HREF="AtomicStampedReference.html" title="java.util.concurrent.atomic 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../index.html@java_2Futil_2Fconcurrent_2Fatomic_2FAtomicReferenceFieldUpdater.html" target="_top"><B>框架</B></A> <A HREF="AtomicReferenceFieldUpdater.html" target="_top"><B>无框架</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>所有类</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | 字段 | <A HREF="#constructor_summary">构造方法</A> | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: 字段 | <A HREF="#constructor_detail">构造方法</A> | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.util.concurrent.atomic</FONT><BR>类 AtomicReferenceFieldUpdater<T,V></H2><PRE><A HREF="../../../lang/Object.html" title="java.lang 中的类">java.lang.Object</A> <IMG SRC="../../../../resources/inherit.gif" ALT="继承者 "><B>java.util.concurrent.atomic.AtomicReferenceFieldUpdater<T,V></B></PRE><DL><DT><DT><B>类型参数:</B><DD><CODE>T</CODE> - 保持可更新字段的对象的类型<DD><CODE>V</CODE> - 字段的类型</DL><HR><DL><DT><PRE>public abstract class <B>AtomicReferenceFieldUpdater<T,V></B><DT>extends <A HREF="../../../lang/Object.html" title="java.lang 中的类">Object</A></DL></PRE><P>基于反射的实用工具,可以对指定类的指定 <tt>volatile reference</tt> 字段进行原子更新。该类用于原子数据结构,该结构中同一节点的几个引用字段都独立受原子更新控制。例如,树节点可能声明为 <pre> class Node { private volatile Node left, right; private static final AtomicReferenceFieldUpdater<Node, Node> leftUpdater = AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "left"); private static AtomicReferenceFieldUpdater<Node, Node> rightUpdater = AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "right"); Node getLeft() { return left; } boolean compareAndSetLeft(Node expect, Node update) { return leftUpdater.compareAndSet(this, expect, update); } // ... and so on } </pre><p> 注意,此类中 <tt>compareAndSet</tt> 方法的保证弱于其他原子类中该方法的保证。因为此类不能确保所有使用的字段都适合于原子访问目的,所以,对于 <tt>compareAndSet</tt> 和 <tt>set</tt> 的其他调用,它仅可以保证原子性和可变语义。<P><P><DL><DT><B>从以下版本开始:</B></DT> <DD>1.5</DD></DL><HR><P><!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>构造方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected </CODE></FONT></TD><TD><CODE><B><A HREF="AtomicReferenceFieldUpdater.html#AtomicReferenceFieldUpdater()">AtomicReferenceFieldUpdater</A></B>()</CODE><BR> 受保护的无操作构造方法,供子类使用。</TD></TR></TABLE> <!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>abstract boolean</CODE></FONT></TD><TD><CODE><B><A HREF="AtomicReferenceFieldUpdater.html#compareAndSet(T, V, V)">compareAndSet</A></B>(<A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">T</A> obj, <A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">V</A> expect, <A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">V</A> update)</CODE><BR> 如果当前值 <tt>==</tt> 预期值,则以原子方式将此更新程序所管理的给定对象的字段值设置为给定的更新值。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>abstract <A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">V</A></CODE></FONT></TD><TD><CODE><B><A HREF="AtomicReferenceFieldUpdater.html#get(T)">get</A></B>(<A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">T</A> obj)</CODE><BR> 获取由给定对象在字段中保持的当前值。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> <A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">V</A></CODE></FONT></TD><TD><CODE><B><A HREF="AtomicReferenceFieldUpdater.html#getAndSet(T, V)">getAndSet</A></B>(<A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">T</A> obj, <A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">V</A> newValue)</CODE><BR> 设置为给定值,并返回旧值。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>static<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY=""><TR ALIGN="right" VALIGN=""><TD NOWRAP><FONT SIZE="-1"><CODE><U,W> <A HREF="AtomicReferenceFieldUpdater.html" title="java.util.concurrent.atomic 中的类">AtomicReferenceFieldUpdater</A><U,W></CODE></FONT></TD></TR></TABLE></CODE></FONT></TD><TD><CODE><B><A HREF="AtomicReferenceFieldUpdater.html#newUpdater(java.lang.Class, java.lang.Class, java.lang.String)">newUpdater</A></B>(<A HREF="../../../lang/Class.html" title="java.lang 中的类">Class</A><U> tclass, <A HREF="../../../lang/Class.html" title="java.lang 中的类">Class</A><W> vclass, <A HREF="../../../lang/String.html" title="java.lang 中的类">String</A> fieldName)</CODE><BR> 使用给定的字段为对象创建一个更新程序。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>abstract void</CODE></FONT></TD><TD><CODE><B><A HREF="AtomicReferenceFieldUpdater.html#set(T, V)">set</A></B>(<A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">T</A> obj, <A HREF="AtomicReferenceFieldUpdater.html" title="AtomicReferenceFieldUpdater 中的类型参数">V</A> newValue)</CODE><BR>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?