- 所有类 (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 类 ThreadPoolExecutor
java.lang.Object └java.util.concurrent.AbstractExecutorService └java.util.concurrent.ThreadPoolExecutor
- 所有已实现的接口:
- Executor, ExecutorService
- 直接已知子类:
- ScheduledThreadPoolExecutor
public class ThreadPoolExecutor
- extends AbstractExecutorService
一个 ExecutorService
,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors
工厂方法配置。
线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行集合任务时使用的线程)的方法。每个 ThreadPoolExecutor
还维护着一些基本的统计数据,如完成的任务数。
为了便于跨大量上下文使用,此类提供了很多可调整的参数和扩展挂钩。但是,强烈建议程序员使用较为方便的 Executors
工厂方法 Executors.newCachedThreadPool()
(无界线程池,可以进行自动线程回收)、 Executors.newFixedThreadPool(int)
(固定大小线程池)和 Executors.newSingleThreadExecutor()
(单个后台线程),它们均为大多数使用场景预定义了设置。否则,在手动配置和调整此类时,使用以下指导:
- 核心和最大池大小
ThreadPoolExecutor
将根据 corePoolSize(参见getCorePoolSize()
)和 maximumPoolSize(参见getMaximumPoolSize()
)设置的边界自动调整池大小。当新任务在方法execute(java.lang.Runnable)
中提交时,如果运行的线程少于 corePoolSize,则创建新线程来处理请求,即使其他辅助线程是空闲的。如果运行的线程多于 corePoolSize 而少于 maximumPoolSize,则仅当队列满时才创建新线程。如果设置的 corePoolSize 和 maximumPoolSize 相同,则创建了固定大小的线程池。如果将 maximumPoolSize 设置为基本的无界值(如Integer.MAX_VALUE
),则允许池适应任意数量的并发任务。在大多数情况下,核心和最大池大小仅基于构造来设置,不过也可以使用setCorePoolSize(int)
和setMaximumPoolSize(int)
进行动态更改。- 按需构造
- 默认情况下,即使核心线程最初只是在新任务需要时才创建和启动的,也可以使用方法
prestartCoreThread()
或prestartAllCoreThreads()
对其进行动态重写。 - 创建新线程
- 使用
ThreadFactory
创建新线程。如果没有另外说明,则在同一个ThreadGroup
中一律使用Executors.defaultThreadFactory()
创建线程,并且这些线程具有相同的NORM_PRIORITY
优先级和非守护进程状态。通过提供不同的 ThreadFactory,可以改变线程的名称、线程组、优先级、守护进程状态,等等。如果从newThread
返回 null 时ThreadFactory
未能创建线程,则执行程序将继续运行,但不能执行任何任务。 - 保持活动时间
- 如果池中当前有多于 corePoolSize 的线程,则这些多出的线程在空闲时间超过 keepAliveTime 时将会终止(参见
getKeepAliveTime(java.util.concurrent.TimeUnit)
)。这提供了当池处于非活动状态时减少资源消耗的方法。如果池后来变得更为活动,则可以创建新的线程。也可以使用方法setKeepAliveTime(long, java.util.concurrent.TimeUnit)
动态地更改此参数。使用Long.MAX_VALUE
TimeUnit.NANOSECONDS
的值在关闭前有效地从以前的终止状态禁用空闲线程。 - 排队
- 所有
BlockingQueue
都可用于传输和保持提交的任务。可以使用此队列与池大小进行交互:- 如果运行的线程少于 corePoolSize,则 Executor 始终首选添加新的线程,而不进行排队。
- 如果运行的线程等于或多于 corePoolSize,则 Executor 始终首选将请求加入队列,而不添加新的线程。
- 如果无法将请求加入队列,则创建新的线程,除非创建此线程超出 maximumPoolSize,在这种情况下,任务将被拒绝。
排队有三种通用策略:
- 直接提交。工作队列的默认选项是
SynchronousQueue
,它将任务直接提交给线程而不保持它们。在此,如果不存在可用于立即运行任务的线程,则试图把任务加入队列将失败,因此会构造一个新的线程。此策略可以避免在处理可能具有内部依赖性的请求集合时出现锁定。直接提交通常要求无界 maximumPoolSizes 以避免拒绝新提交的任务。当命令以超过队列所能处理的平均数连续到达时,此策略允许无界线程具有增长的可能性。 - 无界队列。使用无界队列(例如,不具有预定义容量的
LinkedBlockingQueue
)将导致在所有 corePoolSize 线程都忙的情况下将新任务加入队列。这样,创建的线程就不会超过 corePoolSize。(因此,maximumPoolSize 的值也就无效了。)当每个任务完全独立于其他任务,即任务执行互不影响时,适合于使用无界队列;例如,在 Web 页服务器中。这种排队可用于处理瞬态突发请求,当命令以超过队列所能处理的平均数连续到达时,此策略允许无界线程具有增长的可能性。 - 有界队列。当使用有限的 maximumPoolSizes 时,有界队列(如
ArrayBlockingQueue
)有助于防止资源耗尽,但是可能较难调整和控制。队列大小和最大池大小可能需要相互折衷:使用大型队列和小型池可以最大限度地降低 CPU 使用率、操作系统资源和上下文切换开销,但是可能导致人工降低吞吐量。如果任务频繁阻塞(例如,如果它们是 I/O 边界),则系统可能为超过您许可的更多线程安排时间。使用小型队列通常要求较大的池大小,CPU 使用率较高,但是可能遇到不可接受的调度开销,这样也会降低吞吐量。
- 被拒绝的任务
- 当 Executor 已经关闭,并且 Executor 将有限边界用于最大线程和工作队列容量,且已经饱和时,在方法
execute(java.lang.Runnable)
中提交的新任务将被拒绝。在以上两种情况下,execute
方法都将调用其RejectedExecutionHandler
的RejectedExecutionHandler.rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor)
方法。下面提供了四种预定义的处理程序策略:- 在默认的
ThreadPoolExecutor.AbortPolicy
中,处理程序遭到拒绝将抛出运行时RejectedExecutionException
。 - 在
ThreadPoolExecutor.CallerRunsPolicy
中,线程调用运行该任务的execute
本身。此策略提供简单的反馈控制机制,能够减缓新任务的提交速度。 - 在
ThreadPoolExecutor.DiscardPolicy
中,不能执行的任务将被删除。 - 在
ThreadPoolExecutor.DiscardOldestPolicy
中,如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程)。
定义和使用其他种类的
RejectedExecutionHandler
类也是可能的,但这样做需要非常小心,尤其是当策略仅用于特定容量或排队策略时。 - 在默认的
- 挂钩方法
- 此类提供
protected
可重写的beforeExecute(java.lang.Thread, java.lang.Runnable)
和afterExecute(java.lang.Runnable, java.lang.Throwable)
方法,这两种方法分别在执行每个任务之前和之后调用。它们可用于操纵执行环境;例如,重新初始化 ThreadLocal、搜集统计信息或添加日志条目。此外,还可以重写方法terminated()
来执行 Executor 完全终止后需要完成的所有特殊处理。如果挂钩或回调方法抛出异常,则内部辅助线程将依次失败并突然终止。
- 队列维护
- 方法
getQueue()
允许出于监控和调试目的而访问工作队列。强烈反对出于其他任何目的而使用此方法。remove(java.lang.Runnable)
和purge()
这两种方法可用于在取消大量已排队任务时帮助进行存储回收。
扩展示例。此类的大多数扩展可以重写一个或多个受保护的挂钩方法。例如,下面是一个添加了简单的暂停/恢复功能的子类:
class PausableThreadPoolExecutor extends ThreadPoolExecutor { private boolean isPaused; private ReentrantLock pauseLock = new ReentrantLock(); private Condition unpaused = pauseLock.newCondition(); public PausableThreadPoolExecutor(...) { super(...); } protected void beforeExecute(Thread t, Runnable r) { super.beforeExecute(t, r); pauseLock.lock(); try { while (isPaused) unpaused.await(); } catch(InterruptedException ie) { t.interrupt(); } finally { pauseLock.unlock(); } } public void pause() { pauseLock.lock(); try { isPaused = true; } finally { pauseLock.unlock(); } } public void resume() { pauseLock.lock(); try { isPaused = false; unpaused.signalAll(); } finally { pauseLock.unlock(); } } }
- 从以下版本开始:
- 1.5
嵌套类摘要 | |
---|---|
staticclass | ThreadPoolExecutor.AbortPolicy 用于被拒绝任务的处理程序,它将抛出 |
staticclass | ThreadPoolExecutor.CallerRunsPolicy 用于被拒绝任务的处理程序,它直接在 |
staticclass | ThreadPoolExecutor.DiscardOldestPolicy 用于被拒绝任务的处理程序,它放弃最旧的未处理请求,然后重试 |
staticclass | ThreadPoolExecutor.DiscardPolicy 用于被拒绝任务的处理程序,默认情况下它将放弃被拒绝的任务。 |
构造方法摘要 | |
---|---|
ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue) 用给定的初始参数和默认的线程工厂及处理程序创建新的 | |
ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue, RejectedExecutionHandlerhandler) 用给定的初始参数创建新的 | |
ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue, ThreadFactorythreadFactory) 用给定的初始参数创建新的 | |
ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue, ThreadFactorythreadFactory, RejectedExecutionHandlerhandler) 用给定的初始参数创建新的 |
方法摘要 | |
---|---|
protected void | afterExecute(Runnabler, Throwablet) 基于完成执行给定 Runnable 所调用的方法。 |
boolean | awaitTermination(longtimeout, TimeUnitunit) 请求关闭、发生超时或者当前线程中断,无论哪一个首先发生之后,都将导致阻塞,直到所有任务完成执行。 |
protected void | beforeExecute(Threadt, Runnabler) 在执行给定线程中的给定 Runnable 之前调用的方法。 |
void | execute(Runnablecommand) 在将来某个时间执行给定任务。 |
protected void | finalize() 当不再引用此执行程序时,调用 |
int | getActiveCount() 返回主动执行任务的近似线程数。 |
long | getCompletedTaskCount() 返回已完成执行的近似任务总数。 |
int | getCorePoolSize() 返回核心线程数。 |
long | getKeepAliveTime(TimeUnitunit) 返回线程保持活动的时间,该时间就是超过核心池大小的线程可以在终止前保持空闲的时间值。 |
int | getLargestPoolSize() 返回曾经同时位于池中的最大线程数。 |
int | getMaximumPoolSize() 返回允许的最大线程数。 |
int | getPoolSize() 返回池中的当前线程数。 |
BlockingQueue<Runnable> | getQueue() 返回此执行程序使用的任务队列。 |
RejectedExecutionHandler | getRejectedExecutionHandler() 返回用于未执行任务的当前处理程序。 |
long | getTaskCount() 返回计划执行的近似任务总数。 |
ThreadFactory | getThreadFactory() 返回用于创建新线程的线程工厂。 |
boolean | isShutdown() 如果此执行程序已关闭,则返回 |
boolean | isTerminated() 如果关闭后所有任务都已完成,则返回 |
boolean | isTerminating() 如果此执行程序处于在 |
int | prestartAllCoreThreads() 启动所有核心线程,使其处于等待工作的空闲状态。 |
boolean | prestartCoreThread() 启动核心线程,使其处于等待工作的空闲状态。 |
void | purge() 试图从工作队列移除所有已取消的 |
boolean | remove(Runnabletask) 从执行程序的内部队列中移除此任务(如果出现),这样如果尚未开始,则其不再运行。 |
void | setCorePoolSize(intcorePoolSize) 设置核心线程数。 |
void | setKeepAliveTime(longtime, TimeUnitunit) 设置线程在终止前可以保持空闲的时间限制。 |
void | setMaximumPoolSize(intmaximumPoolSize) 设置允许的最大线程数。 |
void | setRejectedExecutionHandler(RejectedExecutionHandlerhandler) 设置用于未执行任务的新处理程序。 |
void | setThreadFactory(ThreadFactorythreadFactory) 设置用于创建新线程的线程工厂。 |
void | shutdown() 按过去执行已提交任务的顺序发起一个有序的关闭,但是不接受新任务。 |
List<Runnable> | shutdownNow() 尝试停止所有的活动执行任务、暂停等待任务的处理,并返回等待执行的任务列表。 |
protected void | terminated() 当 Executor 已经终止时调用的方法。 |
从类 java.util.concurrent.AbstractExecutorService 继承的方法 |
---|
invokeAll, invokeAll, invokeAny, invokeAny, submit, submit, submit |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息
ThreadPoolExecutor
public ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue)
- 用给定的初始参数和默认的线程工厂及处理程序创建新的
ThreadPoolExecutor
。使用Executors
工厂方法之一比使用此通用构造方法方便得多。- 参数:
corePoolSize
- 池中所保存的线程数,包括空闲线程。maximumPoolSize
- 池中允许的最大线程数。keepAliveTime
- 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。unit
- keepAliveTime 参数的时间单位。workQueue
- 执行前用于保持任务的队列。此队列仅保持由execute
方法提交的Runnable
任务。- 抛出:
IllegalArgumentException
- 如果 corePoolSize 或 keepAliveTime 小于零,或者如果 maximumPoolSize 小于或等于零,或者如果 corePoolSize 大于 maximumPoolSize。NullPointerException
- 如果workQueue
为 null
ThreadPoolExecutor
public ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue, ThreadFactorythreadFactory)
- 用给定的初始参数创建新的
ThreadPoolExecutor
。- 参数:
corePoolSize
- 池中所保存的线程数,包括空闲线程。maximumPoolSize
- 池中允许的最大线程数。keepAliveTime
- 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。unit
- keepAliveTime 参数的时间单位。workQueue
- 执行前用于保持任务的队列。此队列仅保持由execute
方法提交的Runnable
任务。threadFactory
- 执行程序创建新线程时使用的工厂。- 抛出:
IllegalArgumentException
- 如果 corePoolSize 或 keepAliveTime 小于零,或者如果 maximumPoolSize 小于或等于零,或者如果 corePoolSize 大于 maximumPoolSize。NullPointerException
- 如果workQueue
或threadFactory
为 null。
ThreadPoolExecutor
public ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue, RejectedExecutionHandlerhandler)
- 用给定的初始参数创建新的
ThreadPoolExecutor
。- 参数:
corePoolSize
- 池中所保存的线程数,包括空闲线程。maximumPoolSize
- 池中允许的最大线程数。keepAliveTime
- 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。unit
- keepAliveTime 参数的时间单位。workQueue
- 执行前用于保持任务的队列。此队列仅由保持execute
方法提交的Runnable
任务。handler
- 由于超出线程范围和队列容量而使执行被阻塞时所使用的处理程序。- 抛出:
IllegalArgumentException
- 如果 corePoolSize 或 keepAliveTime 小于零,或者如果 maximumPoolSize 小于或等于零,或者如果 corePoolSize 大于 maximumPoolSize。NullPointerException
- 如果workQueue
或handler
为 null。
ThreadPoolExecutor
public ThreadPoolExecutor(intcorePoolSize, intmaximumPoolSize, longkeepAliveTime, TimeUnitunit, BlockingQueue<Runnable>workQueue, ThreadFactorythreadFactory, RejectedExecutionHandlerhandler)
- 用给定的初始参数创建新的
ThreadPoolExecutor
。- 参数:
corePoolSize
- 池中所保存的线程数,包括空闲线程。maximumPoolSize
- 池中允许的最大线程数。keepAliveTime
- 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。unit
- keepAliveTime 参数的时间单位。workQueue
- 执行前用于保持任务的队列。此队列仅保持由execute
方法提交的Runnable
任务。threadFactory
- 执行程序创建新线程时使用的工厂。handler
- 由于超出线程范围和队列容量而使执行被阻塞时所使用的处理程序。- 抛出:
IllegalArgumentException
- 如果 corePoolSize 或 keepAliveTime 小于零,或者如果 maximumPoolSize 小于或等于零,或者如果 corePoolSize 大于 maximumPoolSize。NullPointerException
- 如果workQueue
、threadFactory
或handler
为 null。
方法详细信息
execute
public void execute(Runnablecommand)
- 在将来某个时间执行给定任务。可以在新线程中或者在现有池线程中执行该任务。
如果无法将任务提交执行,或者因为此执行程序已关闭,或者因为已达到其容量,则该任务由当前
RejectedExecutionHandler
处理。 - 参数:
command
- 要执行的任务。- 抛出:
RejectedExecutionException
- 如果无法接收要执行的任务,则由RejectedExecutionHandler
决定是否抛出 RejectedExecutionExceptionNullPointerException
- 如果命令为 null
shutdown
public void shutdown()
- 按过去执行已提交任务的顺序发起一个有序的关闭,但是不接受新任务。如果已经关闭,则调用没有其他作用。
- 抛出:
SecurityException
- 如果安全管理器存在并且关闭此 ExecutorService 可能操作某些不允许调用方修改的线程(因为它没有RuntimePermission
("modifyThread")
),或者安全管理器的checkAccess
方法拒绝访问。
shutdownNow
public List<Runnable> shutdownNow()
- 尝试停止所有的活动执行任务、暂停等待任务的处理,并返回等待执行的任务列表。
此实现通过
Thread.interrupt()
取消任务,所以如果任何任务屏蔽或无法响应中断,则可能永远无法终止该任务。 - 返回:
- 从未开始执行的任务的列表。
- 抛出:
SecurityException
- 如果安全管理器存在并且关闭此 ExecutorService 可能操作某些不允许调用方修改的线程(因为它没有RuntimePermission
("modifyThread")
),或者安全管理器的checkAccess
方法拒绝访问。
isShutdown
public boolean isShutdown()
- 从接口
ExecutorService
复制的描述 - 如果此执行程序已关闭,则返回
true
。 - 返回:
- 如果此执行程序已关闭,则返回
true
isTerminating
public boolean isTerminating()
- 如果此执行程序处于在
shutdown
或shutdownNow
之后正在终止但尚未完全终止的过程中,则返回 true。此方法可能对调试很有用。关闭之后很长一段时间才报告返回的true
,这可能表示提交的任务已经被忽略或取消中断,导致此执行程序无法正确终止。 - 返回:
- 如果正在终止但尚未完成,则返回 true。
isTerminated
public boolean isTerminated()
- 从接口
ExecutorService
复制的描述 - 如果关闭后所有任务都已完成,则返回
true
。注意,除非首先调用shutdown
或shutdownNow
,否则isTerminated
永不为true
。 - 返回:
- 如果关闭后所有任务都已完成,则返回
true
awaitTermination
public boolean awaitTermination(longtimeout, TimeUnitunit) throws InterruptedException
- 从接口
ExecutorService
复制的描述 - 请求关闭、发生超时或者当前线程中断,无论哪一个首先发生之后,都将导致阻塞,直到所有任务完成执行。
- 参数:
timeout
- 最长等待时间unit
- timeout 参数的时间单位- 返回:
- 如果此执行程序终止,则返回
true
;如果终止前超时期满,则返回false
- 抛出:
InterruptedException
- 如果等待时发生中断
finalize
protected void finalize()
- 当不再引用此执行程序时,调用
shutdown
。 - 覆盖:
- 类
Object
中的finalize
setThreadFactory
public void setThreadFactory(ThreadFactorythreadFactory)
- 设置用于创建新线程的线程工厂。
- 参数:
threadFactory
- 新线程工厂- 抛出:
NullPointerException
- 如果 threadFactory 为 null- 另请参见:
getThreadFactory()
getThreadFactory
public ThreadFactory getThreadFactory()
- 返回用于创建新线程的线程工厂。
- 返回:
- 当前线程工厂
- 另请参见:
setThreadFactory(java.util.concurrent.ThreadFactory)
setRejectedExecutionHandler
public void setRejectedExecutionHandler(RejectedExecutionHandlerhandler)
- 设置用于未执行任务的新处理程序。
- 参数:
handler
- 新处理程序- 抛出:
NullPointerException
- 如果处理程序为 null- 另请参见:
getRejectedExecutionHandler()
getRejectedExecutionHandler
public RejectedExecutionHandler getRejectedExecutionHandler()
- 返回用于未执行任务的当前处理程序。
- 返回:
- 当前处理程序
- 另请参见:
setRejectedExecutionHandler(java.util.concurrent.RejectedExecutionHandler)
getQueue
public BlockingQueue<Runnable> getQueue()
- 返回此执行程序使用的任务队列。访问主要用于调试和监控的任务队列。此队列可能正处于活动使用状态中。检索任务队列不妨碍执行已加入队列的任务。
- 返回:
- 任务队列。
remove
public boolean remove(Runnabletask)
- 从执行程序的内部队列中移除此任务(如果出现),这样如果尚未开始,则其不再运行。
此方法可用作取消方案的一部分。如果任务在加入内部队列之前已经转换为其他形式,则移除这些任务时可能会失败。例如,使用
submit
输入的任务可能被转换为维护Future
状态的形式。但是,在这些情况下,可以使用方法purge()
来移除这些已经取消的 Future。 - 参数:
task
- 要移除的任务- 返回:
- 如果已经移除任务,则返回 true
purge
public void purge()
- 试图从工作队列移除所有已取消的
Future
任务。此方法可以用作存储回收操作,它对功能没有任何影响。取消的任务永远不会再执行,但是它们可能在工作队列中累积,直到辅助线程主动将其移除。调用此方法而不是试图立即移除它们。但是,如果出现其他线程的干预,则此方法可能会移除任务失败。
setCorePoolSize
public void setCorePoolSize(intcorePoolSize)
- 设置核心线程数。此操作将重写构造方法中设置的任何值。如果新值小于当前值,则多余的现有线程将在下一次空闲时终止。如果较大,则在需要时启动新线程来执行这些排队的任务。
- 参数:
corePoolSize
- 新核心大小- 抛出:
IllegalArgumentException
- 如果corePoolSize
小于零- 另请参见:
getCorePoolSize()
getCorePoolSize
public int getCorePoolSize()
- 返回核心线程数。
- 返回:
- 核心线程数
- 另请参见:
setCorePoolSize(int)
prestartCoreThread
public boolean prestartCoreThread()
- 启动核心线程,使其处于等待工作的空闲状态。仅当执行新任务时,此操作才重写默认的启动核心线程策略。如果已启动所有核心线程,此方法将返回
false
。 - 返回:
- 如果启动了线程,则返回 true
prestartAllCoreThreads
public int prestartAllCoreThreads()
- 启动所有核心线程,使其处于等待工作的空闲状态。仅当执行新任务时,此操作才重写默认的启动核心线程策略。
- 返回:
- 已启动的线程数。
setMaximumPoolSize
public void setMaximumPoolSize(intmaximumPoolSize)
- 设置允许的最大线程数。此操作将重写构造方法中设置的任何值。如果新值小于当前值,则多余的现有线程将在下一次空闲时终止。
- 参数:
maximumPoolSize
- 新的最大值- 抛出:
IllegalArgumentException
- 如果 maximumPoolSize 小于零或者核心池大小
- 另请参见:
getMaximumPoolSize()
getMaximumPoolSize
public int getMaximumPoolSize()
- 返回允许的最大线程数。
- 返回:
- 允许的最大线程数
- 另请参见:
setMaximumPoolSize(int)
setKeepAliveTime
public void setKeepAliveTime(longtime, TimeUnitunit)
- 设置线程在终止前可以保持空闲的时间限制。如果池中的当前线程数多于核心线程数,在不处理任务的情况下等待这一时间段之后,多余的线程将被终止。此操作将重写构造方法中设置的任何值。
- 参数:
time
- 等待的时间。时间值零将导致执行任务后多余的线程立即终止。unit
- 时间参数的时间单位- 抛出:
IllegalArgumentException
- 如果时间小于零- 另请参见:
getKeepAliveTime(java.util.concurrent.TimeUnit)
getKeepAliveTime
public long getKeepAliveTime(TimeUnitunit)
- 返回线程保持活动的时间,该时间就是超过核心池大小的线程可以在终止前保持空闲的时间值。
- 参数:
unit
- 所需的结果时间单位- 返回:
- 时间限制
- 另请参见:
setKeepAliveTime(long, java.util.concurrent.TimeUnit)
getPoolSize
public int getPoolSize()
- 返回池中的当前线程数。
- 返回:
- 线程数。
getActiveCount
public int getActiveCount()
- 返回主动执行任务的近似线程数。
- 返回:
- 线程数。
getLargestPoolSize
public int getLargestPoolSize()
- 返回曾经同时位于池中的最大线程数。
- 返回:
- 线程数。
getTaskCount
public long getTaskCount()
- 返回计划执行的近似任务总数。因为在计算期间任务和线程的状态可能动态改变,所以返回值只是一个近似值,但是该值在整个连续调用过程中不会减少。
- 返回:
- 任务数。
getCompletedTaskCount
public long getCompletedTaskCount()
- 返回已完成执行的近似任务总数。因为在计算期间任务和线程的状态可能动态改变,所以返回值只是一个近似值,但是该值在整个连续调用过程中不会减少。
- 返回:
- 任务数。
beforeExecute
protected void beforeExecute(Threadt, Runnabler)
- 在执行给定线程中的给定 Runnable 之前调用的方法。此方法由将执行任务
r
的线程t
调用,并且可用于重新初始化 ThreadLocals 或者执行日志记录。注:为了正确嵌套多个重写操作,到此方法结束时,子类通常应该调用super.beforeExecute
。 - 参数:
t
- 将运行任务 r 的线程。r
- 将执行的任务。
afterExecute
protected void afterExecute(Runnabler, Throwablet)
- 基于完成执行给定 Runnable 所调用的方法。此方法由执行任务的线程调用。如果非 null,则 Throwable 是导致执行突然终止的未捕获异常。注:为了正确嵌套多个重写操作,在此方法开始时,子类通常应该调用
super.afterExecute
。 - 参数:
r
- 已经完成的 runnable 线程。t
- 导致终止的异常;如果执行正常结束,则为 null。
terminated
protected void terminated()
- 当 Executor 已经终止时调用的方法。默认实现不执行任何操作。注:为了正确嵌套多个重写操作,子类通常应该在此方法中调用
super.afterExecute
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论