Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > ThreadGroupクラス > enclose
enclose -> self
[permalink][rdoc]自身への ThreadGroup#add によるスレッドの追加・削除を禁止します。 enclose された ThreadGroup に追加や削除を行うと例外 ThreadError が発生します。
ただし、Thread.new によるスレッドの追加は禁止されません。enclose されたスレッドグループ A に 属するスレッドが新たにスレッドを生成した場合、生成されたスレッドはスレッドグループ A に属します。
追加の例:
thg = ThreadGroup.new.enclose thg.add Thread.new {} => -:2:in `add': can't move to the enclosed thread group (ThreadError)
削除の例:
thg1 = ThreadGroup.new thg2 = ThreadGroup.new th = Thread.new {sleep 1} thg1.add th thg1.enclose thg2.add th => -:8:in `add': can't move from the enclosed thread group (ThreadError)