Class: Concurrent::RubySingleThreadExecutor

Inherits:
Object
  • Object
show all
Includes:
RubyExecutor, SerialExecutor
Defined in:
lib/concurrent/executor/ruby_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

Direct Known Subclasses

SingleThreadExecutor

Instance Method Summary collapse

Methods included from SerialExecutor

#serialized?

Methods included from Executor

#can_overflow?, #serialized?

Methods included from RubyExecutor

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

Methods included from Logging

#log

Constructor Details

#initialize(opts = {}) ⇒ RubySingleThreadExecutor

Create a new thread pool.



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

def initialize(opts = {})
  @queue = Queue.new
  @thread = nil
  init_executor
end