種類
ライブラリ
クラス
-
DRb
:: DRbServer (1) - Exception (1)
- Fiber (2)
- IO (10)
-
IRB
:: Context (1) - Monitor (2)
-
Net
:: IMAP (4) -
Net
:: IMAP :: ThreadMember (2) - PStore (1)
-
Rake
:: Application (1) - Shell (5)
- Socket (4)
- Thread (52)
-
Thread
:: Backtrace :: Location (7) -
Thread
:: ConditionVariable (4) -
Thread
:: Mutex (8) -
Thread
:: Queue (14) -
Thread
:: SizedQueue (10) - ThreadGroup (6)
- ThreadsWait (10)
- TracePoint (1)
- Tracer (4)
-
WEBrick
:: GenericServer (1) - WIN32OLE (1)
モジュール
キーワード
-
$ -d (1) -
$ DEBUG (1) -
$ SAFE (1) -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) - << (2)
-
CLOCK
_ THREAD _ CPUTIME _ ID (1) -
CP
_ THREAD _ ACP (1) -
CS
_ GNU _ LIBPTHREAD _ VERSION (1) -
CS
_ POSIX _ V7 _ THREADS _ CFLAGS (1) -
CS
_ POSIX _ V7 _ THREADS _ LDFLAGS (1) - ClosedQueueError (1)
- ConditionVariable (2)
- Context (1)
- DEBUG (1)
- DEBUG= (1)
- Default (1)
- Enumerator (1)
- ErrNoFinishedThread (1)
- ErrNoWaitingThread (1)
- Fiber (1)
-
Init
_ Thread (1) - Location (1)
-
MUTEX
_ FOR _ THREAD _ EXCLUSIVE (1) - Monitor (1)
- MonitorMixin (1)
- MultiTask (1)
- Mutex (2)
-
Mutex
_ m (1) -
NEWS for Ruby 2
. 0 . 0 (1) -
NEWS for Ruby 2
. 2 . 0 (1) -
NEWS for Ruby 2
. 3 . 0 (1) - Open3 (1)
- Queue (2)
- Ruby用語集 (1)
-
SC
_ 2 _ CHAR _ TERM (1) -
SC
_ 2 _ C _ BIND (1) -
SC
_ 2 _ C _ DEV (1) -
SC
_ 2 _ FORT _ DEV (1) -
SC
_ 2 _ FORT _ RUN (1) -
SC
_ 2 _ LOCALEDEF (1) -
SC
_ 2 _ PBS (1) -
SC
_ 2 _ PBS _ ACCOUNTING (1) -
SC
_ 2 _ PBS _ CHECKPOINT (1) -
SC
_ 2 _ PBS _ LOCATE (1) -
SC
_ 2 _ PBS _ MESSAGE (1) -
SC
_ 2 _ PBS _ TRACK (1) -
SC
_ 2 _ SW _ DEV (1) -
SC
_ 2 _ UPE (1) -
SC
_ 2 _ VERSION (1) -
SC
_ ADVISORY _ INFO (1) -
SC
_ AIO _ LISTIO _ MAX (1) -
SC
_ AIO _ MAX (1) -
SC
_ AIO _ PRIO _ DELTA _ MAX (1) -
SC
_ ARG _ MAX (1) -
SC
_ ASYNCHRONOUS _ IO (1) -
SC
_ ATEXIT _ MAX (1) -
SC
_ AVPHYS _ PAGES (1) -
SC
_ BARRIERS (1) -
SC
_ BC _ BASE _ MAX (1) -
SC
_ BC _ DIM _ MAX (1) -
SC
_ BC _ SCALE _ MAX (1) -
SC
_ BC _ STRING _ MAX (1) -
SC
_ CHILD _ MAX (1) -
SC
_ CLK _ TCK (1) -
SC
_ CLOCK _ SELECTION (1) -
SC
_ COLL _ WEIGHTS _ MAX (1) -
SC
_ CPUSET _ SIZE (1) -
SC
_ CPUTIME (1) -
SC
_ DELAYTIMER _ MAX (1) -
SC
_ EXPR _ NEST _ MAX (1) -
SC
_ FSYNC (1) -
SC
_ GETGR _ R _ SIZE _ MAX (1) -
SC
_ GETPW _ R _ SIZE _ MAX (1) -
SC
_ HOST _ NAME _ MAX (1) -
SC
_ IOV _ MAX (1) -
SC
_ IPV6 (1) -
SC
_ JOB _ CONTROL (1) -
SC
_ LINE _ MAX (1) -
SC
_ LOGIN _ NAME _ MAX (1) -
SC
_ MAPPED _ FILES (1) -
SC
_ MEMLOCK (1) -
SC
_ MEMLOCK _ RANGE (1) -
SC
_ MEMORY _ PROTECTION (1) -
SC
_ MESSAGE _ PASSING (1) -
SC
_ MONOTONIC _ CLOCK (1) -
SC
_ MQ _ OPEN _ MAX (1) -
SC
_ MQ _ PRIO _ MAX (1) -
SC
_ NGROUPS _ MAX (1) -
SC
_ NPROCESSORS _ CONF (1) -
SC
_ NPROCESSORS _ ONLN (1) -
SC
_ OPEN _ MAX (1) -
SC
_ PAGESIZE (1) -
SC
_ PAGE _ SIZE (1) -
SC
_ PHYS _ PAGES (1) -
SC
_ PRIORITIZED _ IO (1) -
SC
_ PRIORITY _ SCHEDULING (1) -
SC
_ RAW _ SOCKETS (1) -
SC
_ READER _ WRITER _ LOCKS (1) -
SC
_ REALTIME _ SIGNALS (1) -
SC
_ REGEXP (1) -
SC
_ RE _ DUP _ MAX (1) -
SC
_ RTSIG _ MAX (1) -
SC
_ SAVED _ IDS (1) -
SC
_ SEMAPHORES (1) -
SC
_ SEM _ NSEMS _ MAX (1) -
SC
_ SEM _ VALUE _ MAX (1) -
SC
_ SHARED _ MEMORY _ OBJECTS (1) -
SC
_ SHELL (1) -
SC
_ SIGQUEUE _ MAX (1) -
SC
_ SPAWN (1) -
SC
_ SPIN _ LOCKS (1) -
SC
_ SPORADIC _ SERVER (1) -
SC
_ SS _ REPL _ MAX (1) -
SC
_ STREAM _ MAX (1) -
SC
_ SYMLOOP _ MAX (1) -
SC
_ SYNCHRONIZED _ IO (1) -
SC
_ THREADS (1) -
SC
_ THREAD _ ATTR _ STACKADDR (1) -
SC
_ THREAD _ ATTR _ STACKSIZE (1) -
SC
_ THREAD _ CPUTIME (1) -
SC
_ THREAD _ DESTRUCTOR _ ITERATIONS (1) -
SC
_ THREAD _ KEYS _ MAX (1) -
SC
_ THREAD _ PRIORITY _ SCHEDULING (1) -
SC
_ THREAD _ PRIO _ INHERIT (1) -
SC
_ THREAD _ PRIO _ PROTECT (1) -
SC
_ THREAD _ PROCESS _ SHARED (1) -
SC
_ THREAD _ ROBUST _ PRIO _ INHERIT (1) -
SC
_ THREAD _ ROBUST _ PRIO _ PROTECT (1) -
SC
_ THREAD _ SAFE _ FUNCTIONS (1) -
SC
_ THREAD _ SPORADIC _ SERVER (1) -
SC
_ THREAD _ STACK _ MIN (1) -
SC
_ THREAD _ THREADS _ MAX (1) -
SC
_ TIMEOUTS (1) -
SC
_ TIMERS (1) -
SC
_ TIMER _ MAX (1) -
SC
_ TRACE (1) -
SC
_ TRACE _ EVENT _ FILTER (1) -
SC
_ TRACE _ EVENT _ NAME _ MAX (1) -
SC
_ TRACE _ INHERIT (1) -
SC
_ TRACE _ LOG (1) -
SC
_ TRACE _ NAME _ MAX (1) -
SC
_ TRACE _ SYS _ MAX (1) -
SC
_ TRACE _ USER _ EVENT _ MAX (1) -
SC
_ TTY _ NAME _ MAX (1) -
SC
_ TYPED _ MEMORY _ OBJECTS (1) -
SC
_ TZNAME _ MAX (1) -
SC
_ V6 _ ILP32 _ OFF32 (1) -
SC
_ V6 _ ILP32 _ OFFBIG (1) -
SC
_ V6 _ LP64 _ OFF64 (1) -
SC
_ V6 _ LPBIG _ OFFBIG (1) -
SC
_ V7 _ ILP32 _ OFF32 (1) -
SC
_ V7 _ ILP32 _ OFFBIG (1) -
SC
_ V7 _ LP64 _ OFF64 (1) -
SC
_ V7 _ LPBIG _ OFFBIG (1) -
SC
_ VERSION (1) -
SC
_ XOPEN _ CRYPT (1) -
SC
_ XOPEN _ ENH _ I18N (1) -
SC
_ XOPEN _ REALTIME (1) -
SC
_ XOPEN _ REALTIME _ THREADS (1) -
SC
_ XOPEN _ SHM (1) -
SC
_ XOPEN _ STREAMS (1) -
SC
_ XOPEN _ UNIX (1) -
SC
_ XOPEN _ UUCP (1) -
SC
_ XOPEN _ VERSION (1) - SizedQueue (2)
- TCPServer (1)
- ThreadError (1)
- ThreadGroup (1)
- ThreadMember (1)
- ThreadsWait (1)
- WIN32OLE (1)
- [] (1)
- []= (1)
-
abort
_ on _ exception (2) -
abort
_ on _ exception= (2) -
absolute
_ path (1) - add (1)
-
add
_ trace _ func (1) - alive? (1)
-
all
_ waits (3) - application= (1)
- backtrace (1)
-
backtrace
_ locations (3) -
base
_ label (1) - broadcast (1)
-
caller
_ locations (2) - children (1)
- clear (1)
-
client
_ thread (1) -
client
_ thread= (1) -
clock
_ gettime (1) - close (2)
- closed? (1)
-
count
_ tdata _ objects (1) - current (1)
- debug (1)
-
debug
_ output _ lock (1) -
debug
_ output _ locked? (1) -
debug
_ output _ synchronize (1) -
debug
_ output _ try _ lock (1) -
debug
_ output _ unlock (1) - deq (2)
- detach (1)
-
display
_ thread _ id (1) -
display
_ thread _ id= (1) -
display
_ thread _ id? (1) - drb (1)
-
drb
/ extservm (1) -
drb
/ gw (1) - dump (2)
- empty? (2)
- enclose (1)
- enclosed? (1)
- enq (2)
- enter (1)
- eof (1)
- eof? (1)
- exclusive (1)
- exit (3)
- finished? (1)
- fork (1)
-
get
_ thread _ no (1) - group (1)
-
handle
_ interrupt (1) - inspect (2)
- irb (1)
- join (3)
-
join
_ nowait (1) - key? (1)
- keys (1)
- kill (2)
- label (1)
- length (1)
- lineno (1)
- list (2)
- lock (1)
- locked? (1)
- main (1)
- max (1)
- max= (1)
-
mon
_ enter (1) - monitor (1)
- name (1)
- name= (1)
-
net
/ imap (1) - new (9)
-
next
_ wait (1) -
num
_ waiting (1) - owned? (1)
- pass (1)
- path (1)
-
pending
_ interrupt? (2) - pipe (8)
-
pipeline
_ r (2) -
pipeline
_ rw (2) -
pipeline
_ start (2) -
pipeline
_ w (2) - pop (2)
- popen2 (2)
- popen2e (2)
- popen3 (2)
- priority (1)
- priority= (1)
- push (2)
- raise (1)
-
rb
_ gc _ mark _ threads (1) -
rb
_ thread _ abort _ exc (1) -
rb
_ thread _ abort _ exc _ set (1) -
rb
_ thread _ alive _ p (1) -
rb
_ thread _ alloc (1) -
rb
_ thread _ alone (1) -
rb
_ thread _ aref (1) -
rb
_ thread _ aset (1) -
rb
_ thread _ atfork (1) -
rb
_ thread _ check (1) -
rb
_ thread _ cleanup (1) -
rb
_ thread _ create (1) -
rb
_ thread _ critical _ get (1) -
rb
_ thread _ critical _ set (1) -
rb
_ thread _ current (1) -
rb
_ thread _ dead (1) -
rb
_ thread _ deadlock (1) -
rb
_ thread _ exit (1) -
rb
_ thread _ fd _ close (1) -
rb
_ thread _ fd _ writable (1) -
rb
_ thread _ initialize (1) -
rb
_ thread _ inspect (1) -
rb
_ thread _ interrupt (1) -
rb
_ thread _ join (1) -
rb
_ thread _ join _ m (1) -
rb
_ thread _ key _ p (1) -
rb
_ thread _ keys (1) -
rb
_ thread _ kill (1) -
rb
_ thread _ list (1) -
rb
_ thread _ local _ aref (1) -
rb
_ thread _ local _ aset (1) -
rb
_ thread _ main (1) -
rb
_ thread _ pass (1) -
rb
_ thread _ priority (1) -
rb
_ thread _ priority _ set (1) -
rb
_ thread _ raise (1) -
rb
_ thread _ raise _ m (1) -
rb
_ thread _ ready (1) -
rb
_ thread _ remove (1) -
rb
_ thread _ restore _ context (1) -
rb
_ thread _ run (1) -
rb
_ thread _ s _ abort _ exc (1) -
rb
_ thread _ s _ abort _ exc _ set (1) -
rb
_ thread _ s _ kill (1) -
rb
_ thread _ s _ new (1) -
rb
_ thread _ safe _ level (1) -
rb
_ thread _ save _ context (1) -
rb
_ thread _ schedule (1) -
rb
_ thread _ signal _ raise (1) -
rb
_ thread _ sleep (1) -
rb
_ thread _ sleep _ forever (1) -
rb
_ thread _ start (1) -
rb
_ thread _ start _ 0 (1) -
rb
_ thread _ start _ timer (1) -
rb
_ thread _ status (1) -
rb
_ thread _ stop (1) -
rb
_ thread _ stop _ p (1) -
rb
_ thread _ stop _ timer (1) -
rb
_ thread _ trap _ eval (1) -
rb
_ thread _ value (1) -
rb
_ thread _ wait _ fd (1) -
rb
_ thread _ wait _ for (1) -
rb
_ thread _ wait _ other _ threads (1) -
rb
_ thread _ wakeup (1) -
rb
_ thread _ yield (1) - resolv (1)
- resume (1)
-
rinda
/ rinda (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 3 feature (1) -
ruby 1
. 8 . 4 feature (1) -
ruby 1
. 8 . 5 feature (1) - run (1)
-
safe
_ level (1) - seqno (1)
-
set
_ trace _ func (1) - shift (2)
- signal (1)
- size (1)
- sleep (3)
-
stack
_ extend (1) - start (1)
- status (1)
- stop (1)
- stop? (1)
-
sync
_ ex _ locker (1) -
sync
_ ex _ locker= (1) -
sync
_ upgrade _ waiting (1) -
sync
_ waiting (1) - synchronize (1)
-
tcp
_ server _ loop (2) - terminate (1)
-
thgroup
_ add (1) - thread (5)
-
thread
_ free (1) -
thread
_ keys _ i (1) -
thread
_ mark (1) -
thread
_ status _ name (1) -
thread
_ switch (1) -
thread
_ variable? (1) -
thread
_ variable _ get (1) -
thread
_ variable _ set (1) - threads (1)
- timeout (3)
-
to
_ s (1) - tokens (1)
- transfer (1)
-
try
_ lock (1) -
uid
_ thread (1) - unix (2)
- unlock (1)
- value (1)
- wait (1)
- wakeup (1)
- yaml (1)
- オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1)
- スレッド (1)
- セキュリティモデル (1)
- 終了処理 (1)
検索結果
先頭5件
-
VALUE rb
_ thread _ stop(void) (18349.0) -
現在実行中のスレッドを停止します。 他のスレッドから rb_thread_wakeup を呼ばれると再開します。
現在実行中のスレッドを停止します。
他のスレッドから rb_thread_wakeup を呼ばれると再開します。 -
static VALUE rb
_ thread _ pass(void) (18349.0) -
Thread#pass の実体。
Thread#pass の実体。 -
void rb
_ thread _ schedule(void) (18337.0) -
他のスレッドに実行権を渡します。 対象の特定はできません。
他のスレッドに実行権を渡します。
対象の特定はできません。
@see rb_thread_wait_fd, rb_thread_wait_for -
ThreadGroup (18319.0)
-
スレッドグループを表すクラスです。グループに属する Thread をまとめて 操作することができます。
スレッドグループを表すクラスです。グループに属する Thread をまとめて
操作することができます。
Thread は必ずいずれかひとつのスレッドグループに属します。
生成されたばかりの Thread は、生成した Thread のグループを引き継ぎます。
メインスレッドはデフォルトでは ThreadGroup::Default に属します。
: 例:
生成したすべてのThreadが終了するのを待つ
5.times {
Thread.new { sleep 1; puts "#{Thread.current} finished" }
}
... -
Tracer
. display _ thread _ id -> bool (18307.0) -
真ならば、スレッド ID を表示します。 デフォルトは、真です。
真ならば、スレッド ID を表示します。
デフォルトは、真です。 -
Tracer
. display _ thread _ id? -> bool (18307.0) -
真ならば、スレッド ID を表示します。 デフォルトは、真です。
真ならば、スレッド ID を表示します。
デフォルトは、真です。 -
Net
:: IMAP # client _ thread=(th) (18304.0) -
このメソッドは obsolete です。使わないでください。
このメソッドは obsolete です。使わないでください。 -
Process
:: CLOCK _ THREAD _ CPUTIME _ ID -> Integer (18304.0) -
Process.#clock_gettime で使われます。
Process.#clock_gettime で使われます。
システムによっては定義されていません。 -
Tracer
# get _ thread _ no -> Integer (18304.0) -
@todo
@todo -
Tracer
. display _ thread _ id=(flag) (18304.0) -
スレッド ID を表示するかどうかを設定します。
スレッド ID を表示するかどうかを設定します。
@param flag スレッド ID を表示するならば、真を指定します。 -
WIN32OLE
:: CP _ THREAD _ ACP -> Integer (18304.0) -
現在実行中のスレッドの既定のコードページ(3)を示します。
現在実行中のスレッドの既定のコードページ(3)を示します。
Windowsのコードページはスレッド毎に異なる値を設定できます。 -
VALUE rb
_ thread _ create(fn , arg) (18301.0) -
VALUE (*fn)(); void *arg;
VALUE (*fn)();
void *arg; -
VALUE rb
_ thread _ current(void) (18301.0) -
現在実行中のスレッドを返します。
現在実行中のスレッドを返します。 -
VALUE rb
_ thread _ list(void) (18301.0) -
-
VALUE rb
_ thread _ main(void) (18301.0) -
メインスレッド (プロセスの一番最初に存在するスレッド) を返します。
メインスレッド (プロセスの一番最初に存在するスレッド) を返します。 -
int rb
_ thread _ alone(void) (18301.0) -
評価器にスレッドが一つしか存在しないとき真。
評価器にスレッドが一つしか存在しないとき真。 -
int rb
_ thread _ fd _ writable(int fd) (18301.0) -
-
static VALUE rb
_ thread _ critical _ get(void) (18301.0) -
-
static VALUE rb
_ thread _ critical _ set(VALUE obj , VALUE val) (18301.0) -
-
static VALUE rb
_ thread _ exit(void) (18301.0) -
-
static VALUE rb
_ thread _ s _ abort _ exc(void) (18301.0) -
-
static VALUE rb
_ thread _ s _ abort _ exc _ set(VALUE self , VALUE val) (18301.0) -
-
static VALUE rb
_ thread _ s _ kill(VALUE obj , VALUE th) (18301.0) -
-
static VALUE rb
_ thread _ s _ new(int argc , VALUE *argv , VALUE klass) (18301.0) -
-
static VALUE rb
_ thread _ start(VALUE klass , VALUE args) (18301.0) -
-
static int thread
_ keys _ i(ID key , VALUE value , VALUE ary) (18301.0) -
-
static int thread
_ switch(int n) (18301.0) -
-
static void rb
_ thread _ cleanup(void) (18301.0) -
-
static void rb
_ thread _ deadlock(void) (18301.0) -
-
void Init
_ Thread(void) (18301.0) -
-
void rb
_ gc _ mark _ threads(void) (18301.0) -
存在するスレッド全てをマークします。
存在するスレッド全てをマークします。 -
void rb
_ thread _ atfork(void) (18301.0) -
-
void rb
_ thread _ fd _ close(int fd) (18301.0) -
-
void rb
_ thread _ interrupt(void) (18301.0) -
-
void rb
_ thread _ signal _ raise(char *sig) (18301.0) -
-
void rb
_ thread _ sleep(int sec) (18301.0) -
-
void rb
_ thread _ sleep _ forever(void) (18301.0) -
-
void rb
_ thread _ start _ timer(void) (18301.0) -
setitimer(2) が存在する場合のみ定義されます。
setitimer(2) が存在する場合のみ定義されます。
Ruby のスレッドスケジューリングに使用している
インターバルタイマーを開始します。 -
void rb
_ thread _ stop _ timer(void) (18301.0) -
setitimer(2) が存在する場合のみ定義されます。
setitimer(2) が存在する場合のみ定義されます。
Ruby のスレッドスケジューリングに使用しているインターバルタイマーを
停止します。このタイマーが止まると Ruby のスレッド機構は基本的に停止
しますので注意してください。 -
void rb
_ thread _ trap _ eval(VALUE cmd , int sig) (18301.0) -
-
void rb
_ thread _ wait _ fd(int fd) (18301.0) -
ファイルディスクリプタ fd を読み込めるようになるまで カレントスレッドを停止します。
ファイルディスクリプタ fd を読み込めるようになるまで
カレントスレッドを停止します。 -
void rb
_ thread _ wait _ for(struct timeval time) (18301.0) -
time の長さの時間が経過するまでカレントスレッドを停止します。
time の長さの時間が経過するまでカレントスレッドを停止します。 -
ThreadError (18139.0)
-
Thread 関連のエラーが起きたときに発生します。
Thread 関連のエラーが起きたときに発生します。
* カレントスレッドを Thread#join しようとしたとき
* Thread#join でデッドロックしそうになったとき
* 終了したスレッドを Thread#wakeup あるいは Thread#run しようとしたとき
* スレッドが一つしかないのに Thread.stop しようとしたとき
* Kernel.#throw がスレッド内で Kernel.#catch されないとき
* スレッドから return しようとしたとき
* イテレータを与えずにスレッドを生成しようとしたとき
* カレン... -
Net
:: IMAP :: ThreadMember (18097.0) -
Net::IMAP#thread、 Net::IMAP#uid_thread から 得られるスレッドの木構造のノードを表すクラスです。
Net::IMAP#thread、 Net::IMAP#uid_thread から
得られるスレッドの木構造のノードを表すクラスです。 -
ThreadsWait (18001.0)
-
複数スレッドの終了を待つ機能を提供します。
複数スレッドの終了を待つ機能を提供します。 -
thread (18001.0)
-
このライブラリで提供されていたクラスは 2.3.0 で組み込みクラスになりまし た。互換性のためだけに残されています。
...このライブラリで提供されていたクラスは 2.3.0 で組み込みクラスになりまし
た。互換性のためだけに残されています。... -
ThreadsWait
. all _ waits(*threads) {|thread| . . . } -> () (9820.0) -
指定されたスレッドすべてが終了するまで待ちます。 ブロックが与えられた場合、スレッド終了時にブロックを評価します。
指定されたスレッドすべてが終了するまで待ちます。
ブロックが与えられた場合、スレッド終了時にブロックを評価します。
@param threads 終了するまでまつスレッドを一つもしくは複数指定します。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
ThreadsWait.all_waits(*threads) {|th| printf("end %s\n", th.inspect) }
# 出力例
#=... -
ThreadsWait
. new(*threads) -> ThreadsWait (9817.0) -
指定されたスレッドの終了をまつための、スレッド同期オブジェクトをつくります。
指定されたスレッドの終了をまつための、スレッド同期オブジェクトをつくります。
@param threads 終了を待つスレッドを一つもしくは複数指定します。
使用例
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new(*threads)
thall.all_waits{|th|
printf("end %s\n", th.inspect)
}
... -
ThreadGroup
# add(thread) -> self (9532.0) -
スレッド thread が属するグループを自身に変更します。
スレッド thread が属するグループを自身に変更します。
@param thread 自身に加えたいスレッドを指定します。
@raise ThreadError 自身が freeze されているか enclose されている場合に、発生します。また引数 thread が属する ThreadGroup が freeze されているか enclose されている場合にも発生します。
//emlist[例][ruby]{
puts "Initial group is #{ThreadGroup::Default.list}"
# => Initial group is [#<Thread... -
ThreadsWait
. all _ waits(*threads) -> () (9520.0) -
指定されたスレッドすべてが終了するまで待ちます。 ブロックが与えられた場合、スレッド終了時にブロックを評価します。
指定されたスレッドすべてが終了するまで待ちます。
ブロックが与えられた場合、スレッド終了時にブロックを評価します。
@param threads 終了するまでまつスレッドを一つもしくは複数指定します。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
ThreadsWait.all_waits(*threads) {|th| printf("end %s\n", th.inspect) }
# 出力例
#=... -
ThreadGroup
. new -> ThreadGroup (9481.0) -
新たな ThreadGroup を生成して返します。
新たな ThreadGroup を生成して返します。
//emlist[例][ruby]{
thread_group = ThreadGroup.new
thread_group.add Thread.new { sleep 0.1; Thread.new { sleep 1 }; sleep 1 }
thread_group.add Thread.new { sleep 2 }
sleep 0.5
thread_group.list # => [#<Thread:0x007fc6f1842d70 sleep>, #<Thread:0x007fc6f1842c80 sleep>, #<Th... -
ThreadsWait
# join _ nowait(*threads) -> () (9427.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。 しかし、実際には終了をまちません。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
しかし、実際には終了をまちません。
@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join_nowait(*thr... -
ThreadsWait
# join(*threads) -> () (9409.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join(*threads)
p thall.threads
... -
Thread
:: SizedQueue . new(max) -> Thread :: SizedQueue (9352.0) -
Thread::SizedQueue オブジェクトを生成します。
Thread::SizedQueue オブジェクトを生成します。
@param max キューのサイズの最大値です。 -
Etc
:: SC _ THREADS -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ATTR _ STACKADDR -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ATTR _ STACKSIZE -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ CPUTIME -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ DESTRUCTOR _ ITERATIONS -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ KEYS _ MAX -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PRIORITY _ SCHEDULING -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PRIO _ INHERIT -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PRIO _ PROTECT -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PROCESS _ SHARED -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ROBUST _ PRIO _ INHERIT -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ROBUST _ PRIO _ PROTECT -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ SAFE _ FUNCTIONS -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ SPORADIC _ SERVER -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ STACK _ MIN -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ XOPEN _ REALTIME _ THREADS -> Integer (9346.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
スレッド (9337.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
ThreadGroup
# list -> [Thread] (9322.0) -
self に属するスレッドの配列を返します。 version 1.8 では、aborting 状態であるスレッド も要素に含まれます。つまり「生きている」スレッドの配列を返します。
self に属するスレッドの配列を返します。
version 1.8 では、aborting 状態であるスレッド
も要素に含まれます。つまり「生きている」スレッドの配列を返します。
//emlist[例][ruby]{
ThreadGroup::Default.list # => [#<Thread:0x00007f8f13867078 run>]
//} -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (9322.0) -
指定したスレッドのどれかが終了するまで待ちます。
指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.n... -
Thread
:: ConditionVariable . new -> Thread :: ConditionVariable (9304.0) -
状態変数を生成して返します。
状態変数を生成して返します。 -
Thread
:: Mutex . new -> Thread :: Mutex (9304.0) -
新しい mutex を生成して返します。
新しい mutex を生成して返します。 -
Thread
:: Queue . new -> Thread :: Queue (9304.0) -
新しいキューオブジェクトを生成します。
新しいキューオブジェクトを生成します。 -
Etc
:: CS _ GNU _ LIBPTHREAD _ VERSION -> Integer (9301.0) -
Etc.#confstr の引数に指定します。
Etc.#confstr の引数に指定します。
詳細は confstr(3) を参照してください。 -
Etc
:: CS _ POSIX _ V7 _ THREADS _ CFLAGS -> Integer (9301.0) -
Etc.#confstr の引数に指定します。
Etc.#confstr の引数に指定します。
詳細は confstr(3) を参照してください。 -
Etc
:: CS _ POSIX _ V7 _ THREADS _ LDFLAGS -> Integer (9301.0) -
Etc.#confstr の引数に指定します。
Etc.#confstr の引数に指定します。
詳細は confstr(3) を参照してください。 -
Net
:: IMAP :: ThreadMember # children -> [Net :: IMAP :: ThreadMember] (9301.0) -
スレッドの木構造における自身の下位の部分を返します。
スレッドの木構造における自身の下位の部分を返します。 -
ThreadGroup
:: Default -> ThreadGroup (9301.0) -
デフォルトで定義されている ThreadGroup です。メインスレッド は最初このグループに属します。
デフォルトで定義されている ThreadGroup です。メインスレッド
は最初このグループに属します。 -
ThreadsWait
# all _ waits -> () (9217.0) -
指定されたスレッドすべてが終了するまで待ちます。 ブロックが与えられた場合、スレッド終了時にブロックを評価します。
指定されたスレッドすべてが終了するまで待ちます。
ブロックが与えられた場合、スレッド終了時にブロックを評価します。
使用例
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new(*threads)
thall.all_waits{|th|
printf("end %s\n", th.inspect)
}
# 出力例
#=> #<Thread... -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (9133.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Mutex オブジェクトを指定します。
@param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続け... -
Thread
:: Queue # close -> self (9109.0) -
キューを close します。close 済みのキューを再度 open することはできません。
キューを close します。close 済みのキューを再度 open することはできません。
close 後は以下のように動作します。
* Thread::Queue#closed? は true を返します
* Thread::Queue#close は無視されます
* Thread::Queue#enq/push/<< は ClosedQueueError を発生します
* Thread::Queue#empty? が false を返す場合は Thread::Queue#deq/pop/shift は通常通りオブジェクトを返します
また、ClosedQueueError... -
Thread
:: ConditionVariable (9091.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
スレッドの同期機構の一つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします。スレッド A は現在空いていない
リソースが必要になったので空くまで待つことにしたとします。これはうまくいきません。
なぜなら、スレッド A は排他領域で動いているわけですから、他のスレッドは動くことが
できません。リ... -
Thread
:: SizedQueue # deq(non _ block = false) -> object (9091.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].eac... -
Thread
:: SizedQueue # pop(non _ block = false) -> object (9091.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].eac... -
Thread
:: SizedQueue # shift(non _ block = false) -> object (9091.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].eac... -
ThreadGroup
# enclose -> self (9091.0) -
自身への ThreadGroup#add によるスレッドの追加・削除を禁止します。 enclose された ThreadGroup に追加や削除を行うと例外 ThreadError が発生します。
自身への ThreadGroup#add によるスレッドの追加・削除を禁止します。
enclose された ThreadGroup に追加や削除を行うと例外 ThreadError が発生します。
ただし、Thread.new によるスレッドの追加は禁止されません。enclose されたスレッドグループ A に
属するスレッドが新たにスレッドを生成した場合、生成されたスレッドはスレッドグループ A に属します。
追加の例:
thg = ThreadGroup.new.enclose
thg.add Thread.new {}
=> -:2:in `add': can't ... -
Thread
:: ConditionVariable # broadcast -> self (9085.0) -
状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
状態変数を待っているスレッドをすべて再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
... -
Thread
:: ConditionVariable # signal -> self (9085.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
状態変数を待っているスレッドを1つ再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
... -
Thread
:: SizedQueue (9085.0) -
サイズの最大値を指定できる Thread::Queue です。
サイズの最大値を指定できる Thread::Queue です。
=== 例
283 より。q をサイズ 1 の SizedQueue オブジェクトに
することによって、入力される行と出力される行が同じ順序になります。
q = [] にすると入力と違った順序で行が出力されます。
require 'thread'
q = SizedQueue.new(1)
th = Thread.start {
while line = q.pop
print line
end
}
while l = gets
q.push(l)
end
... -
Thread
:: SizedQueue # close -> self (9085.0) -
キューを close します。詳しくは Thread::Queue#close を参照してください。
キューを close します。詳しくは Thread::Queue#close を参照してください。
Thread::Queue とはキューにオブジェクトを追加するスレッドの動作が
異なります。キューにオブジェクトを追加するスレッドを待機している場合は
ClosedQueueError が発生して中断されます。
//emlist[例][ruby]{
q = SizedQueue.new(4)
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.closed? # => false
q.close
q.c... -
Thread
:: Queue # deq(non _ block = false) -> object (9073.0) -
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}
t... -
Thread
:: Queue # pop(non _ block = false) -> object (9073.0) -
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}
t... -
Thread
:: Queue # shift(non _ block = false) -> object (9073.0) -
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}
t... -
Thread
:: Backtrace :: Location # base _ label -> String (9067.0) -
self が表すフレームの基本ラベルを返します。通常、 Thread::Backtrace::Location#label から修飾を取り除いたもので構成 されます。
self が表すフレームの基本ラベルを返します。通常、
Thread::Backtrace::Location#label から修飾を取り除いたもので構成
されます。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.base_label
end
# => init... -
Thread
:: Queue (9055.0) -
Queue はスレッド間の FIFO(first in first out) の通信路です。ス レッドが空のキューを読み出そうとすると停止します。キューになんら かの情報が書き込まれると実行は再開されます。
Queue はスレッド間の FIFO(first in first out) の通信路です。ス
レッドが空のキューを読み出そうとすると停止します。キューになんら
かの情報が書き込まれると実行は再開されます。
最大サイズが指定できる Queue のサブクラス Thread::SizedQueue も提供されています。
=== 例
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resou... -
Thread
:: SizedQueue # <<(obj) -> () (9055.0) -
キューに与えられたオブジェクトを追加します。
キューに与えられたオブジェクトを追加します。
キューのサイズが Thread::SizedQueue#max に達している場合は、
non_block が真でなければ、キューのサイズが Thread::SizedQueue#max
より小さくなるまで他のスレッドに実行を譲ります。
その後、キューに与えられたオブジェクトを追加します。
@param obj キューに追加したいオブジェクトを指定します。
@param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。
@see Thread::Queue#push -
Thread
:: SizedQueue # enq(obj , non _ block = false) -> () (9055.0) -
キューに与えられたオブジェクトを追加します。
キューに与えられたオブジェクトを追加します。
キューのサイズが Thread::SizedQueue#max に達している場合は、
non_block が真でなければ、キューのサイズが Thread::SizedQueue#max
より小さくなるまで他のスレッドに実行を譲ります。
その後、キューに与えられたオブジェクトを追加します。
@param obj キューに追加したいオブジェクトを指定します。
@param non_block true を与えると、キューが一杯の時に例外 ThreadError が発生します。
@see Thread::Queue#push