////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2004/10/18(Mon) No.278
    配信数： 2039
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                           お詫び                               */

　読者の皆様へ。

　本号は２００４年１０月１８日に配信する予定の号でしたが、作者の配信
予約し忘れにより配信致しませんでした。
　読者の皆様方にはご心配をお掛けしてしまい申し訳ありませんでした。
　本号は２００４年１０月２４日に、 No.279 と共に配信致します。

　今後はこのようなことが決して起こらないよう万全を期す所存です。
　それでは、これからもKAB-studio.hをよろしくお願いいたします。

////////////////////////////////////////////////////////////////////
/*                ２００４年１０月１８日（月）の更新              */
http://www.kab-studio.biz/index.html

・ほとはー９の９追加！
　三人合体ホットハーブに「９の９ 精神安定剤」を追加！
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.biz/nikki2/index.html

2004/10/10 (Sun)
　すげぇ眠い。疲れてる。明日休出だし。ほとはーお休みします。ぷらとわ
書いて終わり。おしごとはちゃんと。情処試験が来週に。受けないけど。そ
して鶴見在住。

2004/10/11 (Mon)
　JSP とか修正して WebLogic の Eclipse プラグイン入れて負荷テストし
て。スープストックトーキョーで晩ごはん。眠すぎる。そして鶴見在住。そ
して戸塚→調布。

2004/10/12 (Tue)
　お休みしました。疲れが取れなくて。お昼になぜかおしごと。他にはなに
もせず。新番組色々。おしごとの話。続くか帰るか。そして断眠。そして
だめ。

2004/10/13 (Wed)
　今日はちゃんとおしごと。来月も？　 USB ケーブルとか 30GIRLS.com と
か購入。そしてテディベア。そしてイメージダウン。

2004/10/14 (Thu)
　酷いコード。フレームワークのしくみとか知らないし。 finally の中に 
close() を突っ込む事に。この現状、コミットされてないなんて……。そし
て継続するってこと？　そしてバグ潰し。

2004/10/15 (Fri)
　finally に close() を。でも単純作業じゃなかった……。かなりアレな
コードばっか。微妙にへろへろ。

2004/10/16 (Sat)
　１０時から休出。 finally に close() を……の合間というかそれをやめ
てバグ潰しを。とんでもないバグばっか……。ホントにアレだ……。他の人
達はタクシーで帰るらしい……。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第十一章　ファインダウト社　−５−

「彼の方は、舞のお母さんも行くって言ってる」
「そ、か。どうする？」
　地面に座る雅樹が赤葉を見上げる。
「村全員行くわけにはいかないだろう」
「そりゃそうだ」
　そうとはいえ、また「あのとき」と同じようになるのでは、という危惧。
「おそらく、だけど、あいつは泉を狙っていたわけじゃないと思う。俺と舞
がここにいるからここに来た、なら俺が離れればここはむしろ安全かもしれ
ない」
「そうだな」
　でも、雅樹がいる、それがどれほど心強いか、側にいない、それがどれほ
ど心細いことか。
「主観でいいんだけど」
　と、唐突にリシュネが訊く。
「ここに来た男、どのくらい強かった？」
「正直、敵じゃない。でも」
「数の問題？」
　雅樹は頷く。
「大量生産されてたらやばいな、ってレベルだ」
「なら、大丈夫。泉ひとつなら監視できるから」
「そか」
　雅樹は立ち上がり、袋を背負う。
「じゃあ行ってくる。赤葉様、くれぐれも」
「わかっている。……残された者の苦しみは、人一倍知っているつもりだ」
「……」
　雅樹はおもむろに赤葉の頭を撫でた。
「！？　な……」
「俺達は、いつでもおまえのことを見ている。絶対に、見捨てたりしないか
らな」
「！！　……」
　赤葉は、唇を噛みしめて、涙を堪えた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
　口にしたその味は……
「ほ、ウジ、茶？」
　シーバリウの戦いは続く。

Machician 第２話 好きとスキと 好評連載中！
[ Machician ]
http://d.hatena.ne.jp/kab_studio/20040823#1093276416
[ Machician＋設定 最新一覧 ]
http://d.hatena.ne.jp/kab_studio/searchdiary?word=*%5BMachician
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 14.11
タイマーを使ってみる！

「というわけで、今回は実際に、同期オブジェクトのタイマーを使ってみま
す」
『タイマーっていうとわかりやすい感じがするんだけど、でも使い方の
イメージがつかめない……』
「それは普通のタイマーを考えてるからじゃないかな。このタイマーは同期
オブジェクトのタイマーなんだから、他の同期オブジェクトと同じように使
えばいいんです」
『他の同期オブジェクトと同じ……待ってるとシグナルオン、みたいな？』
「そういうこと。というわけで、まず一番簡単な方法、自分で作って自分で
待ってみます。他の同期オブジェクトと同じように、まず」

void Create()
void Open()
void Set()
void Wait()
void Cancel()
void Close()

「の６個の関数をボタンから呼び出すようにしてください。ただ、 Set() 
が追加されているのと、 Release() が Cancel() に変更されているので注
意してください」
『ボタンひとつ追加ねー』
「それでは使ってみましょう」

Create()
Set()

「この順で呼び出すことで、タイマーがセットされて、１５秒ごとにオンに
なるようになります」
『この〈オン〉っていうのが……』
「〈シグナルがオンになる〉って言えばわかるでしょ」
『あ！　そか、同期オブジェクトなんだもんね』
「そういうこと」

Wait()

「でこのタイマーを監視してみます」
『あれ？　すぐ〈待機終了〉になっちゃった』
「運が悪かったかも……もう一度やってみて」
『ほい……あ、今度はちょっとしてから〈待機終了〉になった』
「どういうことかっていうと、最初にタイマーがオンになってから、１５秒
間隔でオンになるんです」

SetWaitableTimer() 呼び出し
５秒待機……
シグナルオン
１５秒待機……
シグナルオン
１５秒待機……
シグナルオン
１５秒待機……

「という流れになります。途中で WaitForSingleObject() を監視するとこ
うなります」

タイマー                          ProcessA
タイマーセット←←←←←←←←←←SetWaitableTimer()
５秒待機……
シグナルオン
１５秒待機……←←←←←←←←←←WaitForSingleObject() 待機開始。
シグナルオン→→→→→→→→→→→待機終了。
１５秒待機……

「この〈１５秒待機〉の間のいつ〈待機開始〉しても、シグナルオンになっ
たら〈待機終了〉になります」
『待ち始めた時間は関係ないわけね』
「そういうこと」
『……でもさ、なんかいまいち使い道わかんない。待ち始めた時間に関係な
いんじゃ、 SetWaitableTimer() したらすぐ WaitForSingleObject() して
一定時間後に、って感じじゃない』
「それは自分だけしか使ってないから。タイマーは複数のプロセスから同時
に監視するときに威力を発揮するんです」

ProcessA
ProcessB

「のふたつを作って、両方とも各ボタンで各関数を呼び出すようにしてくだ
さい」
『いつも通りな感じね。あれ、でもみっつ作らなくていいの？』
「今回はふたつで十分だから大丈夫。さて、まずは準備から」

ProcessA::Create()
ProcessB::Open()
ProcessA::Set()

『 ProcessA で作って ProcessB は開くだけ、ね』
「それでは待機を開始してみます」

ProcessA::Wait()
ProcessB::Wait()

『両方いっぺんに待つ、と……』

ProcessA::待機開始
ProcessB::待機開始
……数秒後……
ProcessA::待機終了
……１５秒後……
ProcessB::待機終了

『お、最初は ProcessA しか待機終了しないんだね』
「他の同期オブジェクトもそうだったでしょ」
『そういえば、ミューテックスもセマフォも、シグナルがオンになった時、
待機終了するのは最初に待機した方ひとつだけ……』
「流れはこうなります」

タイマー            ProcessA          ProcessB
セット←←←←←←←タイマーセット
５秒待機……
シグナルオン
２秒待機……←←←←待機開始
３秒待機……←←←←←←←←←←←←←待機開始
１０秒待機……
シグナルオン→→→→待機終了
１５秒待機……
シグナルオン→→→→→→→→→→→→→待機終了
１５秒待機……

「最初に待機開始した ProcessA が先に待機終了して、次のシグナルオンで 
ProcessB の待機が終了します」
『シグナルオンで待機終了するのはひとつずつ、ってことね』
「この具体的な使い道というかイメージは、セマフォと同じくバトンで考え
ると、 ProcessA から ProcessE まである場合……」

ProcessA：待機開始→待機中……
ProcessB：待機開始→待機中……
ProcessC：待機開始→待機中……
ProcessD：待機開始→待機中……
ProcessE：待機開始→待機中……

「と、それぞれ WaitForSingleObject() が呼ぶとこういう状態になりま
す」
『５つとも全部待機状態なわけね』
「それから数秒後、シグナルオンになると」

ProcessA：待機終了→処理開始！
ProcessB：待機開始→待機中……
ProcessC：待機開始→待機中……
ProcessD：待機開始→待機中……
ProcessE：待機開始→待機中……

「それから１５秒後」

ProcessA：処理中……（もしくは処理終了）
ProcessB：待機終了→処理開始！
ProcessC：待機開始→待機中……
ProcessD：待機開始→待機中……
ProcessE：待機開始→待機中……
                    
「さらに１５秒後……」

ProcessA：処理中……（もしくは処理終了）
ProcessB：処理中……（もしくは処理終了）
ProcessC：待機終了→処理開始！
ProcessD：待機開始→待機中……
ProcessE：待機開始→待機中……

「という感じに、タイマーにセットした間隔で処理が開始していきます」
『なんか花火に火を付けていって、ひとつずつ上がっていくみたいな感じ
ね〜』
「セマフォの場合と比較して考えてみます」

セマフォ（バトン数が３の場合）
ProcessA：バトンを受け取って処理開始
ProcessB：バトンを受け取って処理開始
ProcessC：バトンを受け取って処理開始
ProcessD：待機開始→待機中……（バトンが空いたら処理開始）
ProcessE：待機開始→待機中……

「セマフォの場合はバトンの数で実行される処理数を限定します」
『バトンが３つなら３つだけ、ってことね』
「それに対してタイマーは、最大数はプロセスの数５つっていうだけで、そ
れ以外の制限はありません」
『全部処理開始したら全部で５つ処理中ってわけね』
「ただ、最初はそういうことはないでしょ」
『 A 、B 、C って少しずつ増えていくんだもんね。最初は大変な状態になら
ないってわけね』
「それに、処理が一定時間で終了するなら」
『 D が始まる前に A が終了したら、全部で ３つだけ処理される、ってわ
けね。そういう意味では数が制限されるんだ』
「そういう、ちょっと曖昧な感じで、数の制限をしたい場合にこのタイマー
は便利です。たとえばマシンやネットワークの負荷を下げるためとか」
『しっかり３個だけ、とかしないけど、全部いっぺんに処理、ってしないわ
けね』
「まぁその分、使い道があまりはっきりしないからあまり使われてないけど
ね……」

/*
    Preview Next Story!
*/
『タイマーもわかりやすいね。使い道はよくわからないけど』
「次のイベントはもっとわかりやすいよ」
『タイマーよりも？』
「同期オブジェクトの中で一番簡単」
『おー』
「というわけで次回」
＜ Version 14.12 イベントを使おう！ ＞
『につづく！』
「シグナルやバトンって考え方が必要ないから本当に簡単」
『……なんかそれは逆に難しそうな』
「え……」


////////////////////////////////////////////////////////////////////
/*                ２００４年１０月２５日（月）の更新              */
http://www.kab-studio.biz/index.html

・ほとはーに１話追加
　三人合体ホットハーブに一話追加します。


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
http://www.mag2.com/m/0000012198.htm
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

