大小文字の変化に注意すること。利用できるようになっていて、安定している。全ての新しい機能同様、注意が必要ではあるとはいえ、これも安定している。point.スレッドとはプログラム内を通じて一つの実行点を持った制御のフローである。why.こういうと非常に多くの点でプロセスに似ているように聞こえるだろう。その通りで、スレッドはひとつのプロセスにおける細かい部分の一つだ。プロセスは少なくとも一つのスレッドを持つ。プロセスは全てただ一つのスレッドを持っていた。余分にスレッドをつくることができるようになった。してなされるのかをこれから示していこう。program.スレッドプログラムを構築する3つの基本的な方法がある。プログラムに何をやらせるかに依存する。おいては、プログラム中の異なる部分に異なるモデルを選択する必要があるだろう。「ワーカー」スレッドを持つ。それからそれらのタスクを適したワーカースレッドに分配する。event.このモデルはGUIとサーバプログラムに共通である。イベント発生を待ち、処理のために適したワーカースレッドにイベントを渡す。ひとたびイベントが渡されると、ボススレッドは次のイベントのために待機する。times.ボススレッドは相対的に仕事量は少ない。いくつかのスレッドがつくられる。分配するような場合、このモデルは殊のほか便利である。視覚的にフィードバックするような場合にも便利であろう。line.パイプラインモデルはあるタスクを何段階の処理の連続へと分ける。一つのステップの結果を次の処理を行うスレッドへと渡す。データの各部分に対し一つのことを行い、結果を次のスレッドへ渡す。モデルは最も意味がある。許可するのと同様、個々のタスクを小さく単純なものに留める傾向がある。プロセッサのキャッシュを利用するという利益を得ることができるだろう。スレッドを生み出すような再起的プログラムの形態に利用しやすい。うまく位置付けられる(素数ジェネレーターの例は後で登場する)。あなたの予想とは違うことがわかるだろう。それらはPOSIXスレッドではない。Javaのグリーンスレッドでないし、Win32スレッドでもない。混乱するかのどちらかになるだろう。その両方かもしれない。異なるということを言っているのではない。POSIXスレッドに多くを負っている。PerlスレッドはPOSIXスレッドではない。したいのか、Perlはいかにしてそれが可能なのかを考える時だ。Perlスレッドが魔法のように何かを行うことはできないことを覚えておこう。Perlも同様にそうするだろう。Different.Perlスレッドは別ものなのだ。code.スレッドの追加はPerlの内部的な実態を変化させてしまった。XSモジュールや外部ライブラリーを書いている人々も含まれる。デフォルトではスレッド間でperlのデータは共有されない。テストされるかコードレビューを受けるべきである。ものと仮定するべきである。モジュールにもあてはまる。中にさえスレッドセーフでないものがある。うまく働くように最適化されているということを意味するわけではない。利用するようモジュールを書き直したほうがよい。一つのスレッドからそれを使うことによって防ぐことができる。制御するためのプログラミング原則を用いることができる。"ベーシックなセマフォ"でカバーしている。Libraries".また、"システムライブラリにおけるスレッドの安全性"を参照のこと。なる基本的な機能を提供する。必要なことを示しながら基礎的なところをカバーしていこう。プログラミングを容易にしてくれるthreadsモジュールの機能をみることにする。Perlのコンパイル時のオプションによる。サポートのオン・オフを行う。されていないなら、スレッドを使おうとしても失敗するだろう。スレッド専用のコードはモジュールとして分離しておくのがベストだ。MyMod_threadedがそれで、スレッド可能なPerl上で走るときだけインポートされる。驚かせるような奇妙なことがまだたくさん起きる。終了する前に全てのスレッドが実行を終えることに注意を払わなければならない。スレッドが走っているという理由で常にエラーメッセージがはき出されるだろう。この警告は気にしなくて良い。取り除かれるであろう。threads.threadsパッケージは新たなスレッドを生成するのに必要なツールを提供する。よって基本的なスレッドを生み出すのに必要な全ての部品がインポートされる。このスレッドはリファレンスされたサブルーチンの実行を開始する。このとき制御はサブルーチンと呼び出し側との両方に渡される。this:もし必要ならばスレッド開始時のサブルーチンにパラメータを渡すことができる。arguments.この例はスレッドのもう一つの特徴を示している。いくつものスレッドを生成することができるのだ。new().create()はnew()の言い換えである。method:スレッドはサブルーチンでもあるから、値を返すことができる。next.上の例では、スレッドが終了するやいなjoin()メソッドが戻る。OSレベルのクリーンナップを実行する。このクリーンナップは重要だ。長時間にわたって実行されるプログラムが大量のスレッドを生成する場合には。次に説明するdetach()メソッドを呼び出すべきだ。done.join()は三つのことを行う。スレッドが生み出したであろうデータを返すことだ。必要なのは仕事がなされた後にスレッドがクリーンナップされることだけだ。automatically.このような場合、detach()メソッドを使う。スレッドは終了するまで実行し続け、そのあとPerlが自動的にクリーンナップをする。lost.ひとたびあるスレッドがdetachされたら、そのスレッドはjoinされないだろう。(joinのために待機しても)スレッドが生成したであろうデータは失われる。about.いまやスレッドの基本部分については見終わった。データアクセスに対する二つの複雑さを導入することになる。全てのデータは新しいスレッドにコピーされる。起きることと似ている。あるという点が除かれる。データを共有したいものだ。example:共有化された配列の場合は、配列の要素全てが共有化される。