- 所有类 (Java 2 Platform SE 5.0)
- 已过时的 API
- 此 API 文档的组织方式
- 概述 (Java 2 Platform SE 5.0)
- Java 2 Platform 软件包
- 所有软件包的分层结构
- java.awt 接口 ActiveEvent
- java.awt 接口 Adjustable
- java.awt 类 AlphaComposite
- java.awt 类 AWTError
- java.awt 类 AWTEvent
- java.awt 类 AWTEventMulticaster
- java.awt 类 AWTException
- java.awt 类 AWTKeyStroke
- java.awt 类 AWTPermission
- java.awt 类 BasicStroke
- java.awt 类 BorderLayout
- java.awt 类 BufferCapabilities.FlipContents
- java.awt 类 BufferCapabilities
- java.awt 类 Button
- java.awt 类 Canvas
- java.awt 类 CardLayout
- java.awt 类 Checkbox
- java.awt 类 CheckboxGroup
- java.awt 类 CheckboxMenuItem
- java.awt 类 Choice
- java.awt 类 Color
- java.awt 类 Component
- java.awt 类 ComponentOrientation
- java.awt 接口 Composite
- java.awt 接口 CompositeContext
- java.awt 类 Container
- java.awt 类 ContainerOrderFocusTraversalPolicy
- java.awt 类 Cursor
- java.awt 类 DefaultFocusTraversalPolicy
- java.awt 类 DefaultKeyboardFocusManager
- java.awt 类 Dialog
- java.awt 类 Dimension
- java.awt 类 DisplayMode
- java.awt 类 Event
- java.awt 类 EventQueue
- java.awt 类 FileDialog
- java.awt 类 FlowLayout
- java.awt 类 FocusTraversalPolicy
- java.awt 类 Font
- java.awt 类 FontFormatException
- java.awt 类 FontMetrics
- java.awt 类 Frame
- java.awt 类 GradientPaint
- java.awt 类 Graphics
- java.awt 类 Graphics2D
- java.awt 类 GraphicsConfigTemplate
- java.awt 类 GraphicsConfiguration
- java.awt 类 GraphicsDevice
- java.awt 类 GraphicsEnvironment
- java.awt 类 GridBagConstraints
- java.awt 类 GridBagLayout
- java.awt 类 GridLayout
- java.awt 类 HeadlessException
- java.awt 类 IllegalComponentStateException
- java.awt 类 Image
- java.awt 类 ImageCapabilities
- java.awt 类 Insets
- java.awt 接口 ItemSelectable
- java.awt 类 JobAttributes.DefaultSelectionType
- java.awt 类 JobAttributes.DestinationType
- java.awt 类 JobAttributes.DialogType
- java.awt 类 JobAttributes
- java.awt 类 JobAttributes.MultipleDocumentHandlingType
- java.awt 类 JobAttributes.SidesType
- java.awt 类 KeyboardFocusManager
- java.awt 接口 KeyEventDispatcher
- java.awt 接口 KeyEventPostProcessor
- java.awt 类 Label
- java.awt 接口 LayoutManager
- java.awt 接口 LayoutManager2
- java.awt 类 List
- java.awt 类 MediaTracker
- java.awt 类 Menu
- java.awt 类 MenuBar
- java.awt 类 MenuComponent
- java.awt 接口 MenuContainer
- java.awt 类 MenuItem
- java.awt 类 MenuShortcut
- java.awt 类 MouseInfo
- java.awt (Java 2 Platform SE 5.0)
- 软件包 java.awt
- java.awt 类 PageAttributes.ColorType
- java.awt 类 PageAttributes
- java.awt 类 PageAttributes.MediaType
- java.awt 类 PageAttributes.OrientationRequestedType
- java.awt 类 PageAttributes.OriginType
- java.awt 类 PageAttributes.PrintQualityType
- java.awt 接口 Paint
- java.awt 接口 PaintContext
- java.awt 类 Panel
- java.awt 类 Point
- java.awt 类 PointerInfo
- java.awt 类 Polygon
- java.awt 类 PopupMenu
- java.awt 接口 PrintGraphics
- java.awt 类 PrintJob
- java.awt 类 Rectangle
- java.awt 类 RenderingHints
- java.awt 类 RenderingHints.Key
- java.awt 类 Robot
- java.awt 类 Scrollbar
- java.awt 类 ScrollPane
- java.awt 类 ScrollPaneAdjustable
- java.awt 接口 Shape
- java.awt 接口 Stroke
- java.awt 类 SystemColor
- java.awt 类 TextArea
- java.awt 类 TextComponent
- java.awt 类 TextField
- java.awt 类 TexturePaint
- java.awt 类 Toolkit
- java.awt 接口 Transparency
- java.awt 类 Window
- java.awt.color 类 CMMException
- java.awt.color 类 ColorSpace
- java.awt.color 类 ICC_ColorSpace
- java.awt.color 类 ICC_Profile
- java.awt.color 类 ICC_ProfileGray
- java.awt.color 类 ICC_ProfileRGB
- java.awt.color (Java 2 Platform SE 5.0)
- 软件包 java.awt.color
- java.awt.color 类 ProfileDataException
- java.awt.datatransfer 类 Clipboard
- java.awt.datatransfer 接口 ClipboardOwner
- java.awt.datatransfer 类 DataFlavor
- java.awt.datatransfer 类 FlavorEvent
- java.awt.datatransfer 接口 FlavorListener
- java.awt.datatransfer 接口 FlavorMap
- java.awt.datatransfer 接口 FlavorTable
- java.awt.datatransfer 类 MimeTypeParseException
- java.awt.datatransfer (Java 2 Platform SE 5.0)
- 软件包 java.awt.datatransfer
- java.awt.datatransfer 类 StringSelection
- java.awt.datatransfer 类 SystemFlavorMap
- java.awt.datatransfer 接口 Transferable
- java.awt.datatransfer 类 UnsupportedFlavorException
- java.awt.dnd 接口 Autoscroll
- java.awt.dnd 类 DnDConstants
- java.awt.dnd 类 DragGestureEvent
- java.awt.dnd 接口 DragGestureListener
- java.awt.dnd 类 DragGestureRecognizer
- java.awt.dnd 类 DragSource
- java.awt.dnd 类 DragSourceAdapter
- java.awt.dnd 类 DragSourceContext
- java.awt.dnd 类 DragSourceDragEvent
- java.awt.dnd 类 DragSourceDropEvent
- java.awt.dnd 类 DragSourceEvent
- java.awt.dnd 接口 DragSourceListener
- java.awt.dnd 接口 DragSourceMotionListener
- java.awt.dnd 类 DropTarget.DropTargetAutoScroller
- java.awt.dnd 类 DropTarget
- java.awt.dnd 类 DropTargetAdapter
- java.awt.dnd 类 DropTargetContext
- java.awt.dnd 类 DropTargetDragEvent
- java.awt.dnd 类 DropTargetDropEvent
- java.awt.dnd 类 DropTargetEvent
- java.awt.dnd 接口 DropTargetListener
- java.awt.dnd 类 InvalidDnDOperationException
- java.awt.dnd 类 MouseDragGestureRecognizer
- java.awt.dnd (Java 2 Platform SE 5.0)
- 软件包 java.awt.dnd
- java.awt.event 类 ActionEvent
- java.awt.event 接口 ActionListener
- java.awt.event 类 AdjustmentEvent
- java.awt.event 接口 AdjustmentListener
- java.awt.event 接口 AWTEventListener
- java.awt.event 类 AWTEventListenerProxy
- java.awt.event 类 ComponentAdapter
- java.awt.event 类 ComponentEvent
- java.awt.event 接口 ComponentListener
- java.awt.event 类 ContainerAdapter
- java.awt.event 类 ContainerEvent
- java.awt.event 接口 ContainerListener
- java.awt.event 类 FocusAdapter
- java.awt.event 类 FocusEvent
- java.awt.event 接口 FocusListener
- java.awt.event 类 HierarchyBoundsAdapter
- java.awt.event 接口 HierarchyBoundsListener
- java.awt.event 类 HierarchyEvent
- java.awt.event 接口 HierarchyListener
- java.awt.event 类 InputEvent
- java.awt.event 类 InputMethodEvent
- java.awt.event 接口 InputMethodListener
- java.awt.event 类 InvocationEvent
- java.awt.event 类 ItemEvent
- java.awt.event 接口 ItemListener
- java.awt.event 类 KeyAdapter
- java.awt.event 类 KeyEvent
- java.awt.event 接口 KeyListener
- java.awt.event 类 MouseAdapter
- java.awt.event 类 MouseEvent
- java.awt.event 接口 MouseListener
- java.awt.event 类 MouseMotionAdapter
- java.awt.event 接口 MouseMotionListener
- java.awt.event 类 MouseWheelEvent
- java.awt.event 接口 MouseWheelListener
- java.awt.event (Java 2 Platform SE 5.0)
- 软件包 java.awt.event
- java.awt.event 类 PaintEvent
- java.awt.event 类 TextEvent
- java.awt.event 接口 TextListener
- java.awt.event 类 WindowAdapter
- java.awt.event 类 WindowEvent
- java.awt.event 接口 WindowFocusListener
- java.awt.event 接口 WindowListener
- java.awt.event 接口 WindowStateListener
- java.awt.font 类 FontRenderContext
- java.awt.font 类 GlyphJustificationInfo
- java.awt.font 类 GlyphMetrics
- java.awt.font 类 GlyphVector
- java.awt.font 类 GraphicAttribute
- java.awt.font 类 ImageGraphicAttribute
- java.awt.font 类 LineBreakMeasurer
- java.awt.font 类 LineMetrics
- java.awt.font 接口 MultipleMaster
- java.awt.font 类 NumericShaper
- java.awt.font 接口 OpenType
- java.awt.font (Java 2 Platform SE 5.0)
- 软件包 java.awt.font
- java.awt.font 类 ShapeGraphicAttribute
- java.awt.font 类 TextAttribute
- java.awt.font 类 TextHitInfo
- java.awt.font 类 TextLayout.CaretPolicy
- java.awt.font 类 TextLayout
- java.awt.font 类 TextMeasurer
- java.awt.font 类 TransformAttribute
- java.awt.geom 类 AffineTransform
- java.awt.geom 类 Arc2D.Double
- java.awt.geom 类 Arc2D.Float
- java.awt.geom 类 Arc2D
- java.awt.geom 类 Area
- java.awt.geom 类 CubicCurve2D.Double
- java.awt.geom 类 CubicCurve2D.Float
- java.awt.geom 类 CubicCurve2D
- java.awt.geom 类 Dimension2D
- java.awt.geom 类 Ellipse2D.Double
- java.awt.geom 类 Ellipse2D.Float
- java.awt.geom 类 Ellipse2D
- java.awt.geom 类 FlatteningPathIterator
- java.awt.geom 类 GeneralPath
- java.awt.geom 类 IllegalPathStateException
- java.awt.geom 类 Line2D.Double
- java.awt.geom 类 Line2D.Float
- java.awt.geom 类 Line2D
- java.awt.geom 类 NoninvertibleTransformException
- java.awt.geom (Java 2 Platform SE 5.0)
- 软件包 java.awt.geom
- java.awt.geom 接口 PathIterator
- java.awt.geom 类 Point2D.Double
- java.awt.geom 类 Point2D.Float
- java.awt.geom 类 Point2D
- java.awt.geom 类 QuadCurve2D.Double
- java.awt.geom 类 QuadCurve2D.Float
- java.awt.geom 类 QuadCurve2D
- java.awt.geom 类 Rectangle2D.Double
- java.awt.geom 类 Rectangle2D.Float
- java.awt.geom 类 Rectangle2D
- java.awt.geom 类 RectangularShape
- java.awt.geom 类 RoundRectangle2D.Double
- java.awt.geom 类 RoundRectangle2D.Float
- java.awt.geom 类 RoundRectangle2D
- java.awt.im 类 InputContext
- java.awt.im 类 InputMethodHighlight
- java.awt.im 接口 InputMethodRequests
- java.awt.im 类 InputSubset
- java.awt.im (Java 2 Platform SE 5.0)
- 软件包 java.awt.im
- java.awt.im.spi 接口 InputMethod
- java.awt.im.spi 接口 InputMethodContext
- java.awt.im.spi 接口 InputMethodDescriptor
- java.awt.im.spi (Java 2 Platform SE 5.0)
- 软件包 java.awt.im.spi
- java.awt.image 类 AffineTransformOp
- java.awt.image 类 AreaAveragingScaleFilter
- java.awt.image 类 BandCombineOp
- java.awt.image 类 BandedSampleModel
- java.awt.image 类 BufferedImage
- java.awt.image 类 BufferedImageFilter
- java.awt.image 接口 BufferedImageOp
- java.awt.image 类 BufferStrategy
- java.awt.image 类 ByteLookupTable
- java.awt.image 类 ColorConvertOp
- java.awt.image 类 ColorModel
- java.awt.image 类 ComponentColorModel
- java.awt.image 类 ComponentSampleModel
- java.awt.image 类 ConvolveOp
- java.awt.image 类 CropImageFilter
- java.awt.image 类 DataBuffer
- java.awt.image 类 DataBufferByte
- java.awt.image 类 DataBufferDouble
- java.awt.image 类 DataBufferFloat
- java.awt.image 类 DataBufferInt
- java.awt.image 类 DataBufferShort
- java.awt.image 类 DataBufferUShort
- java.awt.image 类 DirectColorModel
- java.awt.image 类 FilteredImageSource
- java.awt.image 接口 ImageConsumer
- java.awt.image 类 ImageFilter
- java.awt.image 接口 ImageObserver
- java.awt.image 接口 ImageProducer
- java.awt.image 类 ImagingOpException
- java.awt.image 类 IndexColorModel
- java.awt.image 类 Kernel
- java.awt.image 类 LookupOp
- java.awt.image 类 LookupTable
- java.awt.image 类 MemoryImageSource
- java.awt.image 类 MultiPixelPackedSampleModel
- java.awt.image (Java 2 Platform SE 5.0)
- 软件包 java.awt.image
- java.awt.image 类 PackedColorModel
- java.awt.image 类 PixelGrabber
- java.awt.image 类 PixelInterleavedSampleModel
- java.awt.image 类 Raster
- java.awt.image 类 RasterFormatException
- java.awt.image 接口 RasterOp
- java.awt.image 接口 RenderedImage
- java.awt.image 类 ReplicateScaleFilter
- java.awt.image 类 RescaleOp
- java.awt.image 类 RGBImageFilter
- java.awt.image 类 SampleModel
- java.awt.image 类 ShortLookupTable
- java.awt.image 类 SinglePixelPackedSampleModel
- java.awt.image 接口 TileObserver
- java.awt.image 类 VolatileImage
- java.awt.image 类 WritableRaster
- java.awt.image 接口 WritableRenderedImage
- java.awt.image.renderable 接口 ContextualRenderedImageFactory
- java.awt.image.renderable (Java 2 Platform SE 5.0)
- 软件包 java.awt.image.renderable
- java.awt.image.renderable 类 ParameterBlock
- java.awt.image.renderable 接口 RenderableImage
- java.awt.image.renderable 类 RenderableImageOp
- java.awt.image.renderable 类 RenderableImageProducer
- java.awt.image.renderable 类 RenderContext
- java.awt.image.renderable 接口 RenderedImageFactory
- java.awt.print 类 Book
- java.awt.print (Java 2 Platform SE 5.0)
- 软件包 java.awt.print
- java.awt.print 接口 Pageable
- java.awt.print 类 PageFormat
- java.awt.print 类 Paper
- java.awt.print 接口 Printable
- java.awt.print 类 PrinterAbortException
- java.awt.print 类 PrinterException
- java.awt.print 接口 PrinterGraphics
- java.awt.print 类 PrinterIOException
- java.awt.print 类 PrinterJob
- java.io 类 BufferedInputStream
- java.io 类 BufferedOutputStream
- java.io 类 BufferedReader
- java.io 类 BufferedWriter
- java.io 类 ByteArrayInputStream
- java.io 类 ByteArrayOutputStream
- java.io 类 CharArrayReader
- java.io 类 CharArrayWriter
- java.io 类 CharConversionException
- java.io 接口 Closeable
- java.io 接口 DataInput
- java.io 类 DataInputStream
- java.io 接口 DataOutput
- java.io 类 DataOutputStream
- java.io 类 EOFException
- java.io 接口 Externalizable
- java.io 类 File
- java.io 类 FileDescriptor
- java.io 接口 FileFilter
- java.io 类 FileInputStream
- java.io 接口 FilenameFilter
- java.io 类 FileNotFoundException
- java.io 类 FileOutputStream
- java.io 类 FilePermission
- java.io 类 FileReader
- java.io 类 FileWriter
- java.io 类 FilterInputStream
- java.io 类 FilterOutputStream
- java.io 类 FilterReader
- java.io 类 FilterWriter
- java.io 接口 Flushable
- java.io 类 InputStream
- java.io 类 InputStreamReader
- java.io 类 InterruptedIOException
- java.io 类 InvalidClassException
- java.io 类 InvalidObjectException
- java.io 类 IOException
- java.io 类 LineNumberInputStream
- java.io 类 LineNumberReader
- java.io 类 NotActiveException
- java.io 类 NotSerializableException
- java.io 接口 ObjectInput
- java.io 类 ObjectInputStream.GetField
- java.io 类 ObjectInputStream
- java.io 接口 ObjectInputValidation
- java.io 接口 ObjectOutput
- java.io 类 ObjectOutputStream
- java.io 类 ObjectOutputStream.PutField
- java.io 类 ObjectStreamClass
- java.io 接口 ObjectStreamConstants
- java.io 类 ObjectStreamException
- java.io 类 ObjectStreamField
- java.io 类 OptionalDataException
- java.io 类 OutputStream
- java.io 类 OutputStreamWriter
- java.io (Java 2 Platform SE 5.0)
- 软件包 java.io
- java.io 类 PipedInputStream
- java.io 类 PipedOutputStream
- java.io 类 PipedReader
- java.io 类 PipedWriter
- java.io 类 PrintStream
- java.io 类 PrintWriter
- java.io 类 PushbackInputStream
- java.io 类 PushbackReader
- java.io 类 RandomAccessFile
- java.io 类 Reader
- java.io 类 SequenceInputStream
- java.io 接口 Serializable
- java.io 类 SerializablePermission
- java.io 类 StreamCorruptedException
- java.io 类 StreamTokenizer
- java.io 类 StringBufferInputStream
- java.io 类 StringReader
- java.io 类 StringWriter
- java.io 类 SyncFailedException
- java.io 类 UnsupportedEncodingException
- java.io 类 UTFDataFormatException
- java.io 类 WriteAbortedException
- java.io 类 Writer
- java.lang 类 AbstractMethodError
- java.lang 接口 Appendable
- java.lang 类 ArithmeticException
- java.lang 类 ArrayIndexOutOfBoundsException
- java.lang 类 ArrayStoreException
- java.lang 类 AssertionError
- java.lang 类 Boolean
- java.lang 类 Byte
- java.lang 类 Character
- java.lang 类 Character.Subset
- java.lang 类 Character.UnicodeBlock
- java.lang 接口 CharSequence
- java.lang 类 Class<T>
- java.lang 类 ClassCastException
- java.lang 类 ClassCircularityError
- java.lang 类 ClassFormatError
- java.lang 类 ClassLoader
- java.lang 类 ClassNotFoundException
- java.lang 接口 Cloneable
- java.lang 类 CloneNotSupportedException
- java.lang 接口 Comparable<T>
- java.lang 类 Compiler
- java.lang 注释类型 Deprecated
- java.lang 类 Double
- java.lang 类 Enum<E extends Enum<E>>
- java.lang 类 EnumConstantNotPresentException
- java.lang 类 Error
- java.lang 类 Exception
- java.lang 类 ExceptionInInitializerError
- java.lang 类 Float
- java.lang 类 IllegalAccessError
- java.lang 类 IllegalAccessException
- java.lang 类 IllegalArgumentException
- java.lang 类 IllegalMonitorStateException
- java.lang 类 IllegalStateException
- java.lang 类 IllegalThreadStateException
- java.lang 类 IncompatibleClassChangeError
- java.lang 类 IndexOutOfBoundsException
- java.lang 类 InheritableThreadLocal<T>
- java.lang 类 InstantiationError
- java.lang 类 InstantiationException
- java.lang 类 Integer
- java.lang 类 InternalError
- java.lang 类 InterruptedException
- java.lang 接口 Iterable<T>
- java.lang 类 LinkageError
- java.lang 类 Long
- java.lang 类 Math
- java.lang 类 NegativeArraySizeException
- java.lang 类 NoClassDefFoundError
- java.lang 类 NoSuchFieldError
- java.lang 类 NoSuchFieldException
- java.lang 类 NoSuchMethodError
- java.lang 类 NoSuchMethodException
- java.lang 类 NullPointerException
- java.lang 类 Number
- java.lang 类 NumberFormatException
- java.lang 类 Object
- java.lang 类 OutOfMemoryError
- java.lang 注释类型 Override
- java.lang (Java 2 Platform SE 5.0)
- 软件包 java.lang
- java.lang 类 Package
- java.lang 类 Process
- java.lang 类 ProcessBuilder
- java.lang 接口 Readable
- java.lang 接口 Runnable
- java.lang 类 Runtime
- java.lang 类 RuntimeException
- java.lang 类 RuntimePermission
- java.lang 类 SecurityException
- java.lang 类 SecurityManager
- java.lang 类 Short
- java.lang 类 StackOverflowError
- java.lang 类 StackTraceElement
- java.lang 类 StrictMath
- java.lang 类 String
- java.lang 类 StringBuffer
- java.lang 类 StringBuilder
- java.lang 类 StringIndexOutOfBoundsException
- java.lang 注释类型 SuppressWarnings
- java.lang 类 System
- java.lang 类 Thread
- java.lang 枚举 Thread.State
- java.lang 接口 Thread.UncaughtExceptionHandler
- java.lang 类 ThreadDeath
- java.lang 类 ThreadGroup
- java.lang 类 ThreadLocal<T>
- java.lang 类 Throwable
- java.lang 类 TypeNotPresentException
- java.lang 类 UnknownError
- java.lang 类 UnsatisfiedLinkError
- java.lang 类 UnsupportedClassVersionError
- java.lang 类 UnsupportedOperationException
- java.lang 类 VerifyError
- java.lang 类 VirtualMachineError
- java.lang 类 Void
- java.lang.annotation 接口 Annotation
- java.lang.annotation 类 AnnotationFormatError
- java.lang.annotation 类 AnnotationTypeMismatchException
- java.lang.annotation 注释类型 Documented
- java.lang.annotation 枚举 ElementType
- java.lang.annotation 类 IncompleteAnnotationException
- java.lang.annotation 注释类型 Inherited
- java.lang.annotation (Java 2 Platform SE 5.0)
- 软件包 java.lang.annotation
- java.lang.annotation 注释类型 Retention
- java.lang.annotation 枚举 RetentionPolicy
- java.lang.annotation 注释类型 Target
- java.lang.instrument 类 ClassDefinition
- java.lang.instrument 接口 ClassFileTransformer
- java.lang.instrument 类 IllegalClassFormatException
- java.lang.instrument 接口 Instrumentation
- java.lang.instrument (Java 2 Platform SE 5.0)
- 软件包 java.lang.instrument
- java.lang.instrument 类 UnmodifiableClassException
- java.lang.management 接口 ClassLoadingMXBean
- java.lang.management 接口 CompilationMXBean
- java.lang.management 接口 GarbageCollectorMXBean
- java.lang.management 类 ManagementFactory
- java.lang.management 类 ManagementPermission
- java.lang.management 接口 MemoryManagerMXBean
- java.lang.management 接口 MemoryMXBean
- java.lang.management 类 MemoryNotificationInfo
- java.lang.management 接口 MemoryPoolMXBean
- java.lang.management 枚举 MemoryType
- java.lang.management 类 MemoryUsage
- java.lang.management 接口 OperatingSystemMXBean
- java.lang.management (Java 2 Platform SE 5.0)
- 软件包 java.lang.management
- java.lang.management 接口 RuntimeMXBean
- java.lang.management 类 ThreadInfo
- java.lang.management 接口 ThreadMXBean
- java.lang.ref (Java 2 Platform SE 5.0)
- 软件包 java.lang.ref
- java.lang.ref 类 PhantomReference<T>
- java.lang.ref 类 Reference<T>
- java.lang.ref 类 ReferenceQueue<T>
- java.lang.ref 类 SoftReference<T>
- java.lang.ref 类 WeakReference<T>
- java.lang.reflect 类 AccessibleObject
- java.lang.reflect 接口 AnnotatedElement
- java.lang.reflect 类 Array
- java.lang.reflect 类 Constructor<T>
- java.lang.reflect 类 Field
- java.lang.reflect 接口 GenericArrayType
- java.lang.reflect 接口 GenericDeclaration
- java.lang.reflect 类 GenericSignatureFormatError
- java.lang.reflect 接口 InvocationHandler
- java.lang.reflect 类 InvocationTargetException
- java.lang.reflect 类 MalformedParameterizedTypeException
- java.lang.reflect 接口 Member
- java.lang.reflect 类 Method
- java.lang.reflect 类 Modifier
- java.lang.reflect (Java 2 Platform SE 5.0)
- 软件包 java.lang.reflect
- java.lang.reflect 接口 ParameterizedType
- java.lang.reflect 类 Proxy
- java.lang.reflect 类 ReflectPermission
- java.lang.reflect 接口 Type
- java.lang.reflect 接口 TypeVariable<D extends GenericDeclaration>
- java.lang.reflect 类 UndeclaredThrowableException
- java.lang.reflect 接口 WildcardType
- java.text 类 Annotation
- java.text 类 AttributedCharacterIterator.Attribute
- java.text 接口 AttributedCharacterIterator
- java.text 类 AttributedString
- java.text 类 Bidi
- java.text 类 BreakIterator
- java.text 接口 CharacterIterator
- java.text 类 ChoiceFormat
- java.text 类 CollationElementIterator
- java.text 类 CollationKey
- java.text 类 Collator
- java.text 类 DateFormat.Field
- java.text 类 DateFormat
- java.text 类 DateFormatSymbols
- java.text 类 DecimalFormat
- java.text 类 DecimalFormatSymbols
- java.text 类 FieldPosition
- java.text 类 Format.Field
- java.text 类 Format
- java.text 类 MessageFormat.Field
- java.text 类 MessageFormat
- java.text 类 NumberFormat.Field
- java.text 类 NumberFormat
- java.text (Java 2 Platform SE 5.0)
- 软件包 java.text
- java.text 类 ParseException
- java.text 类 ParsePosition
- java.text 类 RuleBasedCollator
- java.text 类 SimpleDateFormat
- java.text 类 StringCharacterIterator
- java.util 类 AbstractCollection<E>
- java.util 类 AbstractList<E>
- java.util 类 AbstractMap<K,V>
- java.util 类 AbstractQueue<E>
- java.util 类 AbstractSequentialList<E>
- java.util 类 AbstractSet<E>
- java.util 类 ArrayList<E>
- java.util 类 Arrays
- java.util 类 BitSet
- java.util 类 Calendar
- java.util 接口 Collection<E>
- java.util 类 Collections
- java.util 接口 Comparator<T>
- java.util 类 ConcurrentModificationException
- java.util 类 Currency
- java.util 类 Date
- java.util 类 Dictionary<K,V>
- java.util 类 DuplicateFormatFlagsException
- java.util 类 EmptyStackException
- java.util 接口 Enumeration<E>
- java.util 类 EnumMap<K extends Enum<K>,V>
- java.util 类 EnumSet<E extends Enum<E>>
- java.util 接口 EventListener
- java.util 类 EventListenerProxy
- java.util 类 EventObject
- java.util 类 FormatFlagsConversionMismatchException
- java.util 接口 Formattable
- java.util 类 FormattableFlags
- java.util 枚举 Formatter.BigDecimalLayoutForm
- java.util 类 Formatter
- java.util 类 FormatterClosedException
- java.util 类 GregorianCalendar
- java.util 类 HashMap<K,V>
- java.util 类 HashSet<E>
- java.util 类 Hashtable<K,V>
- java.util 类 IdentityHashMap<K,V>
- java.util 类 IllegalFormatCodePointException
- java.util 类 IllegalFormatConversionException
- java.util 类 IllegalFormatException
- java.util 类 IllegalFormatFlagsException
- java.util 类 IllegalFormatPrecisionException
- java.util 类 IllegalFormatWidthException
- java.util 类 InputMismatchException
- java.util 类 InvalidPropertiesFormatException
- java.util 接口 Iterator<E>
- java.util 类 LinkedHashMap<K,V>
- java.util 类 LinkedHashSet<E>
- java.util 类 LinkedList<E>
- java.util 接口 List<E>
- java.util 接口 ListIterator<E>
- java.util 类 ListResourceBundle
- java.util 类 Locale
- java.util 接口 Map.Entry<K,V>
- java.util 接口 Map<K,V>
- java.util 类 MissingFormatArgumentException
- java.util 类 MissingFormatWidthException
- java.util 类 MissingResourceException
- java.util 类 NoSuchElementException
- java.util 类 Observable
- java.util 接口 Observer
- java.util (Java 2 Platform SE 5.0)
- 软件包 java.util
- java.util 类 PriorityQueue<E>
- java.util 类 Properties
- java.util 类 PropertyPermission
- java.util 类 PropertyResourceBundle
- java.util 接口 Queue<E>
- java.util 类 Random
- java.util 接口 RandomAccess
- java.util 类 ResourceBundle
- java.util 类 Scanner
- java.util 接口 Set<E>
- java.util 类 SimpleTimeZone
- java.util 接口 SortedMap<K,V>
- java.util 接口 SortedSet<E>
- java.util 类 Stack<E>
- java.util 类 StringTokenizer
- java.util 类 Timer
- java.util 类 TimerTask
- java.util 类 TimeZone
- java.util 类 TooManyListenersException
- java.util 类 TreeMap<K,V>
- java.util 类 TreeSet<E>
- java.util 类 UnknownFormatConversionException
- java.util 类 UnknownFormatFlagsException
- java.util 类 UUID
- java.util 类 Vector<E>
- java.util 类 WeakHashMap<K,V>
- java.util.concurrent 类 AbstractExecutorService
- java.util.concurrent 类 ArrayBlockingQueue<E>
- java.util.concurrent 接口 BlockingQueue<E>
- java.util.concurrent 类 BrokenBarrierException
- java.util.concurrent 接口 Callable<V>
- java.util.concurrent 类 CancellationException
- java.util.concurrent 接口 CompletionService<V>
- java.util.concurrent 类 ConcurrentHashMap<K,V>
- java.util.concurrent 类 ConcurrentLinkedQueue<E>
- java.util.concurrent 接口 ConcurrentMap<K,V>
- java.util.concurrent 类 CopyOnWriteArrayList<E>
- java.util.concurrent 类 CopyOnWriteArraySet<E>
- java.util.concurrent 类 CountDownLatch
- java.util.concurrent 类 CyclicBarrier
- java.util.concurrent 接口 Delayed
- java.util.concurrent 类 DelayQueue<E extends Delayed>
- java.util.concurrent 类 Exchanger<V>
- java.util.concurrent 类 ExecutionException
- java.util.concurrent 接口 Executor
- java.util.concurrent 类 ExecutorCompletionService<V>
- java.util.concurrent 类 Executors
- java.util.concurrent 接口 ExecutorService
- java.util.concurrent 接口 Future<V>
- java.util.concurrent 类 FutureTask<V>
- java.util.concurrent 类 LinkedBlockingQueue<E>
- java.util.concurrent (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent
- java.util.concurrent 类 PriorityBlockingQueue<E>
- java.util.concurrent 类 RejectedExecutionException
- java.util.concurrent 接口 RejectedExecutionHandler
- java.util.concurrent 接口 ScheduledExecutorService
- java.util.concurrent 接口 ScheduledFuture<V>
- java.util.concurrent 类 ScheduledThreadPoolExecutor
- java.util.concurrent 类 Semaphore
- java.util.concurrent 类 SynchronousQueue<E>
- java.util.concurrent 接口 ThreadFactory
- java.util.concurrent 类 ThreadPoolExecutor.AbortPolicy
- java.util.concurrent 类 ThreadPoolExecutor.CallerRunsPolicy
- java.util.concurrent 类 ThreadPoolExecutor.DiscardOldestPolicy
- java.util.concurrent 类 ThreadPoolExecutor.DiscardPolicy
- java.util.concurrent 类 ThreadPoolExecutor
- java.util.concurrent 类 TimeoutException
- java.util.concurrent 枚举 TimeUnit
- java.util.concurrent.atomic 类 AtomicBoolean
- java.util.concurrent.atomic 类 AtomicInteger
- java.util.concurrent.atomic 类 AtomicIntegerArray
- java.util.concurrent.atomic 类 AtomicIntegerFieldUpdater<T>
- java.util.concurrent.atomic 类 AtomicLong
- java.util.concurrent.atomic 类 AtomicLongArray
- java.util.concurrent.atomic 类 AtomicLongFieldUpdater<T>
- java.util.concurrent.atomic 类 AtomicMarkableReference<V>
- java.util.concurrent.atomic 类 AtomicReference<V>
- java.util.concurrent.atomic 类 AtomicReferenceArray<E>
- java.util.concurrent.atomic 类 AtomicReferenceFieldUpdater<T,V>
- java.util.concurrent.atomic 类 AtomicStampedReference<V>
- java.util.concurrent.atomic (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent.atomic
- java.util.concurrent.locks 类 AbstractQueuedSynchronizer
- java.util.concurrent.locks 接口 Condition
- java.util.concurrent.locks 接口 Lock
- java.util.concurrent.locks 类 LockSupport
- java.util.concurrent.locks (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent.locks
- java.util.concurrent.locks 接口 ReadWriteLock
- java.util.concurrent.locks 类 ReentrantLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock.ReadLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock.WriteLock
- java.util.jar 类 Attributes
- java.util.jar 类 Attributes.Name
- java.util.jar 类 JarEntry
- java.util.jar 类 JarException
- java.util.jar 类 JarFile
- java.util.jar 类 JarInputStream
- java.util.jar 类 JarOutputStream
- java.util.jar 类 Manifest
- java.util.jar 类 Pack200
- java.util.jar 接口 Pack200.Packer
- java.util.jar 接口 Pack200.Unpacker
- java.util.jar (Java 2 Platform SE 5.0)
- 软件包 java.util.jar
- java.util.logging 类 ConsoleHandler
- java.util.logging 类 ErrorManager
- java.util.logging 类 FileHandler
- java.util.logging 接口 Filter
- java.util.logging 类 Formatter
- java.util.logging 类 Handler
- java.util.logging 类 Level
- java.util.logging 类 Logger
- java.util.logging 接口 LoggingMXBean
- java.util.logging 类 LoggingPermission
- java.util.logging 类 LogManager
- java.util.logging 类 LogRecord
- java.util.logging 类 MemoryHandler
- java.util.logging (Java 2 Platform SE 5.0)
- 软件包 java.util.logging
- java.util.logging 类 SimpleFormatter
- java.util.logging 类 SocketHandler
- java.util.logging 类 StreamHandler
- java.util.logging 类 XMLFormatter
- java.util.prefs 类 AbstractPreferences
- java.util.prefs 类 BackingStoreException
- java.util.prefs 类 InvalidPreferencesFormatException
- java.util.prefs 类 NodeChangeEvent
- java.util.prefs 接口 NodeChangeListener
- java.util.prefs (Java 2 Platform SE 5.0)
- 软件包 java.util.prefs
- java.util.prefs 类 PreferenceChangeEvent
- java.util.prefs 接口 PreferenceChangeListener
- java.util.prefs 类 Preferences
- java.util.prefs 接口 PreferencesFactory
- java.util.regex 类 Matcher
- java.util.regex 接口 MatchResult
- java.util.regex (Java 2 Platform SE 5.0)
- 软件包 java.util.regex
- java.util.regex 类 Pattern
- java.util.regex 类 PatternSyntaxException
- java.util.zip 类 Adler32
- java.util.zip 类 CheckedInputStream
- java.util.zip 类 CheckedOutputStream
- java.util.zip 接口 Checksum
- java.util.zip 类 CRC32
- java.util.zip 类 DataFormatException
- java.util.zip 类 Deflater
- java.util.zip 类 DeflaterOutputStream
- java.util.zip 类 GZIPInputStream
- java.util.zip 类 GZIPOutputStream
- java.util.zip 类 Inflater
- java.util.zip 类 InflaterInputStream
- java.util.zip (Java 2 Platform SE 5.0)
- 软件包 java.util.zip
- java.util.zip 类 ZipEntry
- java.util.zip 类 ZipException
- java.util.zip 类 ZipFile
- java.util.zip 类 ZipInputStream
- java.util.zip 类 ZipOutputStream
java.util.concurrent.locks 类 AbstractQueuedSynchronizer
java.lang.Object └java.util.concurrent.locks.AbstractQueuedSynchronizer
- 所有已实现的接口:
- Serializable
public abstract class AbstractQueuedSynchronizer
- extends Object
- implements Serializable
为实现依赖于先进先出 (FIFO) 等待队列的阻塞锁定和相关同步器(信号量、事件,等等)提供一个框架。此类的设计目标是成为依靠单个原子 int
值来表示状态的大多数同步器的一个有用基础。子类必须定义更改此状态的受保护方法,并定义哪种状态对于此对象意味着被获取或被释放。假定这些条件之后,此类中的其他方法就可以实现所有排队和阻塞机制。子类可以维护其他状态字段,但只是为了获得同步而只追踪使用 getState()
、 setState(int)
和 compareAndSetState(int, int)
方法来操作以原子方式更新的 int
值。
应该将子类定义为非公共内部帮助器类,可用它们来实现其封闭类的同步属性。类 AbstractQueuedSynchronizer
没有实现任何同步接口。而是定义了诸如 acquireInterruptibly(int)
之类的一些方法,在适当的时候可以通过具体的锁定和相关同步器来调用它们,以实现其公共方法。
此类支持默认的独占 模式和共享 模式之一,或者二者都支持。处于独占模式下时,其他线程试图获取该锁定将无法取得成功。在共享模式下,多个线程获取某个锁定可能(但不是一定)会获得成功。此类并不“了解”这些不同,除了机械地意识到当在共享模式下成功获取某一锁定时,下一个等待线程(如果存在)也必须确定自己是否可以成功获取该锁定。处于不同模式下的等待线程可以共享相同的 FIFO 队列。通常,实现子类只支持其中一种模式,但两种模式都可以在(例如) ReadWriteLock
中发挥作用。只支持独占模式或者只支持共享模式的子类不必定义支持未使用模式的方法。
此类通过支持独占模式的子类定义了一个嵌套的 AbstractQueuedSynchronizer.ConditionObject
类,可以将这个类用作 Condition
实现。 isHeldExclusively()
方法将报告同步对于当前线程是否是独占的;使用当前 getState()
值调用 release(int)
方法则可以完全释放此对象;如果给定保存的状态值,那么 acquire(int)
方法可以将此对象最终恢复为它以前获取的状态。没有别的 AbstractQueuedSynchronizer
方法创建这样的条件,因此,如果无法满足此约束,则不要使用它。 AbstractQueuedSynchronizer.ConditionObject
的行为当然取决于其同步器实现的语义。
此类为内部队列提供了检查、检测和监视方法,还为 condition 对象提供了类似方法。可以根据需要使用用于其同步机制的 AbstractQueuedSynchronizer
将这些方法导出到类中。
此类的序列化只存储维护状态的基础原子整数,因此已序列化的对象拥有空的线程队列。需要可序列化的典型子类将定义一个 readObject
方法,该方法在反序列化时将此对象恢复到某个已知初始状态。
使用
为了将此类用作同步器的基础,需要适当地重新定义以下方法,这是通过使用 getState()
、 setState(int)
和/或 compareAndSetState(int, int)
方法来检查和/或修改同步状态来实现的:
tryAcquire(int)
tryRelease(int)
tryAcquireShared(int)
tryReleaseShared(int)
isHeldExclusively()
默认情况下,每个方法都抛出 UnsupportedOperationException
。这些方法的实现在内部必须是线程安全的,通常应该很短并且不被阻塞。定义这些方法是使用此类的惟一 受支持的方式。其他所有方法都被声明为 final
,因为它们无法是各不相同的。
即使此类基于内部的某个 FIFO 队列,它也无法强行实施 FIFO 获取策略。独占同步的核心采用以下形式:
Acquire: while (!tryAcquire(arg)) { enqueue thread if it is not already queued; possibly block current thread; } Release: if (tryRelease(arg)) unblock the first queued thread;
(共享模式与此类似,但可能涉及级联信号。)
因为要在加入队列之前检查线程的获取状况,所以新获取的线程可能闯入 其他被阻塞的和已加入队列的线程之前。不过如果需要,可以内部调用一个或多个检查方法,通过定义 tryAcquire
和/或 tryAcquireShared
来禁用闯入。特别是 getFirstQueuedThread()
没有返回当前线程的时候,严格的 FIFO 锁定可以定义 tryAcquire
立即返回 false
。只有 hasQueuedThreads()
返回 true
并且 getFirstQueuedThread
不是当前线程时,更好的非严格公平的版本才可能会立即返回 false
;或者如果 getFirstQueuedThread
不为 null 并且不是当前线程,则产生的结果相同。出现进一步的变体也是有可能的。
对于默认闯入(也称为 greedy、renouncement 和 convoy-avoidance)策略,吞吐量和可伸缩性通常是最高的。尽管无法保证这是公平的或是无偏向的,但允许更早加入队列的线程先于更迟加入队列的线程再次争用资源,并且相对于传入的线程,每个参与再争用的线程都有平等的成功机会。此外,尽管从一般意义上说,获取并非“自旋”,它们可以在阻塞之前对用其他计算所使用的 tryAcquire
执行多次调用。在只保持独占同步时,这为自旋提供了最大的好处,但不是这种情况时,也不会带来最大的负担。如果需要这样做,那么可以使用“快速路径”检查来先行调用 acquire 方法,以这种方式扩充这一点,如果可能不需要争用同步器,则只能通过预先检查 hasContended()
和/或 hasQueuedThreads()
来确认这一点。
通过特殊化其同步器的使用范围,此类为部分同步化提供了一个有效且可伸缩的基础,同步器可以依赖于 int
型的 state、acquire 和 release 参数,以及一个内部的 FIFO 等待队列。这些还不够的时候,可以使用 atomic
类、自己的定制 Queue
类和 LockSupport
阻塞支持,从更低级别构建同步器。
用例
以下是一个非再进入的互斥锁定类,它使用值 0 表示未锁定状态,使用 1 表示锁定状态。它还支持一些条件并公开了一个检测方法:
class Mutex implements Lock, java.io.Serializable { // Our internal helper class private static class Sync extends AbstractQueuedSynchronizer { // Report whether in locked state protected boolean isHeldExclusively() { return getState() == 1; } // Acquire the lock if state is zero public boolean tryAcquire(int acquires) { assert acquires == 1; // Otherwise unused return compareAndSetState(0, 1); } // Release the lock by setting state to zero protected boolean tryRelease(int releases) { assert releases == 1; // Otherwise unused if (getState() == 0) throw new IllegalMonitorStateException(); setState(0); return true; } // Provide a Condition Condition newCondition() { return new ConditionObject(); } // Deserialize properly private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); setState(0); // reset to unlocked state } } // The sync object does all the hard work. We just forward to it. private final Sync sync = new Sync(); public void lock() { sync.acquire(1); } public boolean tryLock() { return sync.tryAcquire(1); } public void unlock() { sync.release(1); } public Condition newCondition() { return sync.newCondition(); } public boolean isLocked() { return sync.isHeldExclusively(); } public boolean hasQueuedThreads() { return sync.hasQueuedThreads(); } public void lockInterruptibly() throws InterruptedException { sync.acquireInterruptibly(1); } public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException { return sync.tryAcquireNanos(1, unit.toNanos(timeout)); } }
以下是一个锁存器类,它类似于 CountDownLatch
,除了只需要触发单个 signal
之外。因为锁存器是非独占的,所以它使用 shared
的获取和释放方法。
class BooleanLatch { private static class Sync extends AbstractQueuedSynchronizer { boolean isSignalled() { return getState() != 0; } protected int tryAcquireShared(int ignore) { return isSignalled()? 1 : -1; } protected boolean tryReleaseShared(int ignore) { setState(1); return true; } } private final Sync sync = new Sync(); public boolean isSignalled() { return sync.isSignalled(); } public void signal() { sync.releaseShared(1); } public void await() throws InterruptedException { sync.acquireSharedInterruptibly(1); } }
- 从以下版本开始:
- 1.5
- 另请参见:
- 序列化表格
嵌套类摘要 | |
---|---|
class | AbstractQueuedSynchronizer.ConditionObject
|
构造方法摘要 | |
---|---|
protected | AbstractQueuedSynchronizer() 使用初始同步状态 0 来创建一个新的 |
方法摘要 | |
---|---|
void | acquire(intarg) 以独占模式获取对象,忽略中断。 |
void | acquireInterruptibly(intarg) 以独占模式获取对象,如果被中断则中止。 |
void | acquireShared(intarg) 以共享模式获取对象,忽略中断。 |
void | acquireSharedInterruptibly(intarg) 以共享模式获取对象,如果被中断则中止。 |
protected boolean | compareAndSetState(intexpect, intupdate) 如果当前状态值等于预期值,则以原子方式将同步状态设置为给定的更新值。 |
Collection<Thread> | getExclusiveQueuedThreads() 返回包含可能正以独占模式等待获取的线程 collection。 |
Thread | getFirstQueuedThread() 返回队列中第一个(等待时间最长的)线程,如果目前没有将任何线程加入队列,则返回 |
Collection<Thread> | getQueuedThreads() 返回包含可能正在等待获取的线程 collection。 |
int | getQueueLength() 返回等待获取的线程数估计值。 |
Collection<Thread> | getSharedQueuedThreads() 返回包含可能正以共享模式等待获取的线程 collection。 |
protected int | getState() 返回同步状态的当前值。 |
Collection<Thread> | getWaitingThreads(AbstractQueuedSynchronizer.ConditionObjectcondition) 返回一个 collection,其中包含可能正在等待与此同步器有关的给定条件的那些线程。 |
int | getWaitQueueLength(AbstractQueuedSynchronizer.ConditionObjectcondition) 返回正在等待与此同步器有关的给定条件的线程数估计值。 |
boolean | hasContended() 查询是否其他线程也曾争着获取此同步器;也就是说,是否某个 acquire 方法已经阻塞。 |
boolean | hasQueuedThreads() 查询是否有正在等待获取的任何线程。 |
boolean | hasWaiters(AbstractQueuedSynchronizer.ConditionObjectcondition) 查询是否有线程正在等待给定的、与此同步器相关的条件。 |
protected boolean | isHeldExclusively() 如果对于当前(正调用的)线程,同步是以独占方式进行的,则返回 true。 |
boolean | isQueued(Threadthread) 如果给定线程目前已加入队列,则返回 true。 |
boolean | owns(AbstractQueuedSynchronizer.ConditionObjectcondition) 查询给定的 ConditionObject 是否使用了此同步器作为其锁定。 |
boolean | release(intarg) 以独占模式释放对象。 |
boolean | releaseShared(intarg) 以共享模式释放对象。 |
protected void | setState(intnewState) 设置同步状态的值。 |
String | toString() 返回标识此同步器及其状态的字符串。 |
protected boolean | tryAcquire(intarg) 试图在独占模式下获取对象状态。 |
boolean | tryAcquireNanos(intarg, longnanosTimeout) 试图以独占模式获取对象,如果被中断则中止,如果到了给定超时时间,则会失败。 |
protected int | tryAcquireShared(intarg) 试图在共享模式下获取对象状态。 |
boolean | tryAcquireSharedNanos(intarg, longnanosTimeout) 试图以共享模式获取对象,如果被中断则中止,如果到了给定超时时间,则会失败。 |
protected boolean | tryRelease(intarg) 试图设置状态来反映独占模式下的一个释放。 |
protected boolean | tryReleaseShared(intarg) 试图设置状态来反映共享模式下的一个释放。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息
AbstractQueuedSynchronizer
protected AbstractQueuedSynchronizer()
- 使用初始同步状态 0 来创建一个新的
AbstractQueuedSynchronizer
实例。
方法详细信息
getState
protected final int getState()
- 返回同步状态的当前值。此操作具有
volatile
读的内存语义。 - 返回:
- 当前状态值
setState
protected final void setState(intnewState)
- 设置同步状态的值。此操作具有
volatile
写的内存语义。 - 参数:
newState
- 新的状态值
compareAndSetState
protected final boolean compareAndSetState(intexpect, intupdate)
- 如果当前状态值等于预期值,则以原子方式将同步状态设置为给定的更新值。此操作具有
volatile
读和写的内存语义。 - 参数:
expect
- 预期值update
- 新值- 返回:
- 如果成功,则返回 true。返回 false 指示实际值与预期值不相等。
tryAcquire
protected boolean tryAcquire(intarg)
- 试图在独占模式下获取对象状态。此方法应该查询是否允许它在独占模式下获取对象状态,如果允许,则获取它。
此方法总是由执行 acquire 的线程来调用。如果此方法报告失败,则 acquire 方法可以将线程加入队列(如果还没有将它加入队列),直到获得其他某个线程释放了该线程的信号。可以用此方法来实现
Lock.tryLock()
方法。默认实现将抛出
UnsupportedOperationException
- 参数:
arg
- acquire 参数。该值总是传递给 acquire 方法的那个值,或者是因某个条件等待而保存在条目上的值。该值是不间断的,并且可以表示任何内容。- 返回:
- 如果成功,则返回 true。在成功的时候,此对象已经被获取。
- 抛出:
IllegalMonitorStateException
- 如果正在进行的获取操作将在非法状态下放置此同步器。必须以一致的方式抛出此异常,以便同步正确运行。UnsupportedOperationException
- 如果不支持独占模式
tryRelease
protected boolean tryRelease(intarg)
- 试图设置状态来反映独占模式下的一个释放。
此方法总是由正在执行释放的线程调用。
默认实现将抛出
UnsupportedOperationException
- 参数:
arg
- release 参数。该值总是传递给 release 方法的那个值,或者是因某个条件等待而保存在条目上的当前状态值。该值是不间断的,并且可以表示任何内容。- 返回:
- 如果此对象现在处于完全释放状态,从而使等待的线程都可以试图获得此对象,则返回
true
;否则返回false
。 - 抛出:
IllegalMonitorStateException
- 如果正在进行的释放操作将在非法状态下放置此同步器。必须以一致的方式抛出此异常,以便同步正确运行。UnsupportedOperationException
- 如果不支持独占模式
tryAcquireShared
protected int tryAcquireShared(intarg)
- 试图在共享模式下获取对象状态。此方法应该查询是否允许它在共享模式下获取对象状态,如果允许,则获取它。
此方法总是由执行 acquire 线程来调用。如果此方法报告失败,则 acquire 方法可以将线程加入队列(如果还没有将它加入队列),直到获得其他某个线程释放了该线程的信号。
默认实现将抛出
UnsupportedOperationException
- 参数:
arg
- acquire 参数。该值总是传递给 acquire 方法的那个值,或者是因某个条件等待而保存在条目上的值。该值是不间断的,并且可以表示任何内容。- 返回:
- 在失败时返回负值,在独占成功时返回 0,在非独占成功时也返回一个正值,在这种情况下,后续等待线程必须检查对象的可用性。(支持三种不同的返回值使得此方法可以在只是有时以独占方式获取对象的上下文中使用。)在成功的时候,此对象已经被获取。
- 抛出:
IllegalMonitorStateException
- 如果正在进行的获取操作将在非法状态下放置此同步器。必须以一致的方式抛出此异常,以便同步正确运行。UnsupportedOperationException
- 如果不支持共享模式
tryReleaseShared
protected boolean tryReleaseShared(intarg)
- 试图设置状态来反映共享模式下的一个释放。
此方法总是由正在执行释放的线程调用。
默认实现将抛出
UnsupportedOperationException
- 参数:
arg
- release 参数。该值总是传递给 release 方法的那个值,或者是因某个条件等待而保存在条目上的当前状态值。该值是不间断的,并且可以表示任何内容。- 返回:
- 如果此对象现在处于完全释放状态,从而使正在等待的线程都可以试图获得此对象,则返回
true
;否则返回false
。 - 抛出:
IllegalMonitorStateException
- 如果正在进行的释放操作将在非法状态下放置此同步器。必须以一致的方式抛出此异常,以便同步正确运行。UnsupportedOperationException
- 如果不支持共享模式
isHeldExclusively
protected boolean isHeldExclusively()
- 如果对于当前(正调用的)线程,同步是以独占方式进行的,则返回 true。此方法是在每次调用非等待
AbstractQueuedSynchronizer.ConditionObject
方法时调用的。(等待方法则调用release(int)
。)默认实现将抛出
UnsupportedOperationException
。此方法只是AbstractQueuedSynchronizer.ConditionObject
方法内进行内部调用,因此,如果不使用条件,则不需要定义它。 - 返回:
- 如果同步是以独占方式进行的,则返回 true;其他情况则返回 false
- 抛出:
UnsupportedOperationException
- 如果不支持这些条件
acquire
public final void acquire(intarg)
- 以独占模式获取对象,忽略中断。通过至少调用一次
tryAcquire(int)
来实现此方法,并在成功时返回。否则在成功之前,一直调用tryAcquire(int)
将线程加入队列,线程可能重复被阻塞或不被阻塞。可以使用此方法来实现Lock.lock()
方法 - 参数:
arg
- acquire 参数。此值被传送给tryAcquire(int)
,但它是不间断的,并且可以表示任何内容。
acquireInterruptibly
public final void acquireInterruptibly(intarg) throws InterruptedException
- 以独占模式获取对象,如果被中断则中止。通过先检查中断状态,然后至少调用一次
tryAcquire(int)
来实现此方法,并在成功时返回。否则在成功之前,或者线程被中断之前,一直调用tryAcquire(int)
将线程加入队列,线程可能重复被阻塞或不被阻塞。可以使用此方法来实现Lock.lockInterruptibly()
方法。 - 参数:
arg
- acquire 参数。此值被传送给tryAcquire(int)
,但它是不间断的,并且可以表示任何内容。- 抛出:
InterruptedException
- 如果当前线程被中断
tryAcquireNanos
public final boolean tryAcquireNanos(intarg, longnanosTimeout) throws InterruptedException
- 试图以独占模式获取对象,如果被中断则中止,如果到了给定超时时间,则会失败。通过先检查中断状态,然后至少调用一次
tryAcquire(int)
来实现此方法,并在成功时返回。否则,在成功之前、线程被中断之前或者到达超时时间之前,一直调用tryAcquire(int)
将线程加入队列,线程可能重复被阻塞或不被阻塞。可以用此方法来实现Lock.tryLock(long, TimeUnit)
方法。 - 参数:
arg
- acquire 参数。此值被传送给tryAcquire(int)
,但它是不间断的,并且可以表示任何内容。nanosTimeout
- 等待的最长时间,以毫微秒为单位- 返回:
- 如果获取对象,则返回 true,如果超时,则返回 false
- 抛出:
InterruptedException
- 如果当前线程被中断
release
public final boolean release(intarg)
- 以独占模式释放对象。如果
tryRelease(int)
返回 true,则通过消除一个或多个线程的阻塞来实现此方法。可以使用此方法来实现Lock.unlock()
方法 - 参数:
arg
- release 参数。此值被传送给tryRelease(int)
,但它是不间断的,并且可以表示任何内容。- 返回:
- 从
tryRelease(int)
返回的值
acquireShared
public final void acquireShared(intarg)
- 以共享模式获取对象,忽略中断。通过至少先调用一次
tryAcquireShared(int)
来实现此方法,并在成功时返回。否则在成功之前,一直调用tryAcquireShared(int)
将线程加入队列,线程可能重复被阻塞或不被阻塞。 - 参数:
arg
- acquire 参数。此值被传送给tryAcquireShared(int)
,但它是不间断的,并且可以表示任何内容。
acquireSharedInterruptibly
public final void acquireSharedInterruptibly(intarg) throws InterruptedException
- 以共享模式获取对象,如果被中断则中止。通过先检查中断状态,然后至少调用一次
tryAcquireShared(int)
来实现此方法,并在成功时返回。否则在成功或线程被中断之前,一直调用tryAcquireShared(int)
将线程加入队列,线程可能重复被阻塞或不被阻塞。 - 参数:
arg
- acquire 参数。此值被传送给tryAcquireShared(int)
,但它是不间断的,并且可以表示任何内容。- 抛出:
InterruptedException
- 如果当前线程被中断
tryAcquireSharedNanos
public final boolean tryAcquireSharedNanos(intarg, longnanosTimeout) throws InterruptedException
- 试图以共享模式获取对象,如果被中断则中止,如果到了给定超时时间,则会失败。通过先检查中断状态,然后至少调用一次
tryAcquireShared(int)
来实现此方法,并在成功时返回。否则在成功之前、线程被中断之前或者到达超时时间之前,一直调用tryAcquireShared(int)
将线程加入队列,线程可能重复被阻塞或不被阻塞。 - 参数:
arg
- acquire 参数。此值被传送给tryAcquireShared(int)
,但它是不间断的,并且可以表示任何内容。nanosTimeout
- 等待的最长时间,以毫微秒为单位- 返回:
- 如果获取对象,则返回 true,如果超时,则返回 false
- 抛出:
InterruptedException
- 如果当前线程被中断
releaseShared
public final boolean releaseShared(intarg)
- 以共享模式释放对象。如果
tryReleaseShared(int)
返回 true,则通过消除一个或多个线程的阻塞来实现该方法。 - 参数:
arg
- release 参数。此值被传送给tryReleaseShared(int)
,但它是不间断的,并且可以表示任何内容。- 返回:
- 从
tryReleaseShared(int)
中返回的值
hasQueuedThreads
public final boolean hasQueuedThreads()
- 查询是否有正在等待获取的任何线程。注意,随时可能因为中断和超时而导致取消操作,返回
true
并不能保证其他任何线程都将获取对象。在此实现中,该操作是以固定时间返回的。
- 返回:
- 如果可能有其他线程正在等待获取锁定,则返回 true。
hasContended
public final boolean hasContended()
- 查询是否其他线程也曾争着获取此同步器;也就是说,是否某个 acquire 方法已经阻塞。
在此实现中,该操作是以固定时间返回的。
- 返回:
- 如果曾经出现争用,则返回 true
getFirstQueuedThread
public final Thread getFirstQueuedThread()
- 返回队列中第一个(等待时间最长的)线程,如果目前没有将任何线程加入队列,则返回
null
。在此实现中,该操作是以固定时间返回的,但是,如果其他线程目前正在并发修改该队列,则可能出现循环争用。
- 返回:
- 队列中第一个(等待时间最长的)线程,如果目前没有将任何线程加入队列,则返回
null
。
isQueued
public final boolean isQueued(Threadthread)
- 如果给定线程目前已加入队列,则返回 true。
该实现将遍历队列,以确定给定线程是否存在。
- 参数:
thread
- 线程- 返回:
- 如果给定线程在队列中,则返回 true
- 抛出:
NullPointerException
- 如果 thread 为 null
getQueueLength
public final int getQueueLength()
- 返回等待获取的线程数估计值。该值只能是一个估计值,因为在此方法遍历内部数据结构时,线程的数量可能发生大的变化。该方法是为用来监视系统状态而设计的,不是为同步控制设计的。
- 返回:
- 正等待此锁定的线程估计数
getQueuedThreads
public final Collection<Thread> getQueuedThreads()
- 返回包含可能正在等待获取的线程 collection。因为在构造该结果时,实际线程 set 可能发生大的变化,所以返回的 collection 只是尽最大努力获得的一个估计值。返回 collection 的元素并不是以特定顺序排列的。此方法是为促进子类的构造而设计的,这些子类提供了大量的监视设施。
- 返回:
- 线程的 collection
getExclusiveQueuedThreads
public final Collection<Thread> getExclusiveQueuedThreads()
- 返回包含可能正以独占模式等待获取的线程 collection。此方法具有与
getQueuedThreads()
相同的属性,除了它只返回那些因独占获取而等待的线程。 - 返回:
- 线程的 collection
getSharedQueuedThreads
public final Collection<Thread> getSharedQueuedThreads()
- 返回包含可能正以共享模式等待获取的线程 collection。此方法具有与
getQueuedThreads()
相同的属性,除了它只返回那些因共享获取而等待的线程。 - 返回:
- 线程的 collection
toString
public String toString()
- 返回标识此同步器及其状态的字符串。此状态被括号括起来,它包括字符串 "State =",后面是
getState()
的当前值,再后面是 "nonempty" 或 "empty",这取决于队列是否为空。 - 覆盖:
- 类
Object
中的toString
- 返回:
- 标识此同步器及其状态的字符串。
owns
public final boolean owns(AbstractQueuedSynchronizer.ConditionObjectcondition)
- 查询给定的 ConditionObject 是否使用了此同步器作为其锁定。
- 参数:
condition
- 条件- 返回:
- 如果具备此条件,则返回
true
- 抛出:
NullPointerException
- 如果 condition 为 null
hasWaiters
public final boolean hasWaiters(AbstractQueuedSynchronizer.ConditionObjectcondition)
- 查询是否有线程正在等待给定的、与此同步器相关的条件。注意,因为随时可能发生超时和中断,所以返回
true
并不能保证将来某个signal
将唤醒任何线程。此方法主要是为了监视系统状态而设计的。 - 参数:
condition
- 条件- 返回:
- 如果有正在等待的线程,则返回
true
。 - 抛出:
IllegalMonitorStateException
- 如果不进行独占同步IllegalArgumentException
- 如果给定的 condition 与此同步器无关NullPointerException
- 如果 condition 为 null
getWaitQueueLength
public final int getWaitQueueLength(AbstractQueuedSynchronizer.ConditionObjectcondition)
- 返回正在等待与此同步器有关的给定条件的线程数估计值。注意,因为随时可能发生超时和中断,所以估计值只是实际等待线程的数量上限。此方法是为监视系统状态而设计的,不是为同步控制设计的。
- 参数:
condition
- 条件- 返回:
- 等待线程的估计数
- 抛出:
IllegalMonitorStateException
- 如果不进行独占同步IllegalArgumentException
- 如果给定的 condition 与此同步器无关NullPointerException
- 如果 condition 为 null
getWaitingThreads
public final Collection<Thread> getWaitingThreads(AbstractQueuedSynchronizer.ConditionObjectcondition)
- 返回一个 collection,其中包含可能正在等待与此同步器有关的给定条件的那些线程。因为在构造该结果时,实际线程 set 可能发生大的变化,所以返回的 collection 只是尽最大努力获得的一个估计值。返回 collection 的元素并不是以特定顺序排列的。
- 参数:
condition
- 条件- 返回:
- 线程的 collection
- 抛出:
IllegalMonitorStateException
- 如果不进行独占同步IllegalArgumentException
- 如果给定的 condition 与此同步器无关NullPointerException
- 如果 condition 为 null
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论