Class: Concurrent::JavaSingleThreadExecutor

Inherits:
Object
  • Object
show all
Includes:
JavaExecutor, SerialExecutor
Defined in:
lib/concurrent/executor/java_single_thread_executor.rb

Overview

Note:

When running on the JVM (JRuby) this class will inherit from JavaSingleThreadExecutor. On all other platforms it will inherit from RubySingleThreadExecutor.

A thread pool with a set number of threads. The number of threads in the pool is set on construction and remains constant. When all threads are busy new tasks #post to the thread pool are enqueued until a thread becomes available. Should a thread crash for any reason the thread will immediately be removed from the pool and replaced.

The API and behavior of this class are based on Java’s SingleThreadExecutor

Instance Method Summary collapse

Methods included from SerialExecutor

#serialized?

Methods included from Executor

#can_overflow?, #serialized?

Methods included from JavaExecutor

#<<, #kill, #post, #running?, #shutdown, #shutdown?, #shuttingdown?, #wait_for_termination

Constructor Details

#initialize(opts = {}) ⇒ JavaSingleThreadExecutor

Create a new thread pool.



16
17
18
19
# File 'lib/concurrent/executor/java_single_thread_executor.rb', line 16

def initialize(opts = {})
  @executor = java.util.concurrent.Executors.newSingleThreadExecutor
  set_shutdown_hook
end