DoubleAccumulator 类

定义

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

[Android.Runtime.Register("java/util/concurrent/atomic/DoubleAccumulator", ApiSince=24, DoNotGenerateAcw=true)]
public class DoubleAccumulator : Java.Lang.Number, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/atomic/DoubleAccumulator", ApiSince=24, DoNotGenerateAcw=true)>]
type DoubleAccumulator = class
    inherit Number
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
继承
DoubleAccumulator
属性
实现

注解

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。 当在线程之间争用更新(方法 #accumulate),变量集可能会动态增长以减少争用。 方法 #get (或等效 #doubleValue)在维护更新的变量中返回当前值。

当多个线程更新通用值(例如经常更新但不太频繁读取的摘要统计信息)时,此类通常更适合替代方法。

提供的累加器函数应无副作用,因为当尝试更新因线程争用而失败时,可能会重新应用它。 对于可预测的结果,累加器函数应在使用上下文中所需的浮点容差内进行通勤和关联。 该函数以现有值(或标识)作为一个参数应用,并将给定更新作为另一个参数应用。 例如,若要维护正在运行的最大值,可以随标识一起Double.NEGATIVE_INFINITY提供Double::max。 不能保证线程内或跨线程的累积顺序。 因此,如果需要数值稳定性,则此类可能不适用,尤其是在将大小大小大相径庭的值组合在一起时。

DoubleAdder 为维护总和的常见特殊情况提供此类功能的模拟。 调用 new DoubleAdder() 等效于 new DoubleAccumulator((x, y) -> x + y, 0.0).

此类扩展Number,但><不包括</em> 定义方法,equals并且由于实例应被可变, hashCodecompareTo因此不能用作收集键。

已在 1.8 中添加。

Java文档java.util.concurrent.atomic.DoubleAccumulator

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

名称 说明
DoubleAccumulator(IDoubleBinaryOperator, Double)

使用给定的累加器函数和标识元素创建一个新实例。

DoubleAccumulator(IntPtr, JniHandleOwnership)

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
JniPeerMembers

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

PeerReference

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
ThenReset

等效于 #get 后跟 #reset

ThresholdClass

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

ThresholdType

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

方法

名称 说明
Accumulate(Double)

使用给定值进行更新。

ByteValue()

返回指定数字的值作为一个 byte

(继承自 Number)
Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
Dispose(Boolean)

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
DoubleValue()

等效于 #get

Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
FloatValue()

以缩小基元转换后的形式返回 #get 当前值 float

Get()

返回当前值。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IntValue()

以缩小基元转换后的形式 int 返回 #get 当前值。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
LongValue()

以缩小基元转换后的形式返回 #get 当前值 long

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Reset()

重置维护对标识值的更新的变量。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ShortValue()

返回指定数字的值作为一个 short

(继承自 Number)
ToArray<T>()

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
IJavaPeerable.Finalized()

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

一个或多个变量,这些变量一起维护使用提供的函数更新的运行 double 值。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于