ページ 11

マルチスレッドクラス

Posted: 2009年1月05日(月) 15:13
by 組木紙織
以前この掲示板にお世話なり製作していたWin32用のマルチスレッド操作クラスのインターフェース
が大体できました。
そのことの報告です。

内部構造や例外安全性などはまだ十分に考えておらず、
デバッグもまだまともにしていないので実際に使えるものではないものです。

そのことを考慮した上で、何か意見、アドバイスが欲しいと思います。

一応環境は次のようになっています。
Windows Vista
VS2005:SE

Re:マルチスレッドクラス

Posted: 2009年1月07日(水) 01:46
by Justy
 前回のスレは・・・過去ログ27と42、46、49ですね。
 うわ、前回のにしても1年近く前ですね。

http://www.play21.jp/board/formz.cgi?ac ... &rln=13481
http://www.play21.jp/board/formz.cgi?ac ... &rln=14641
http://www.play21.jp/board/formz.cgi?ac ... &rln=15456


 ちょっとこのところ忙しくてきちんと見れていない&前回の内容をまだ思い出せていないので
すごい薄っぺらいことしか言えませんが、

・ 要 boostになっています?(threadH.hppで anyをインクルード)

・ Threadクラスの publicに run()があるのですが、これは public(ユーザーが明示的に呼べる)で
いいのでしょうか?

・ ThreadOpeがコピー可能になっています。

・ TK::ThreadBreak::CanBreak::Break(_threadBase* p_thread)
 TerminateThread()に渡しているハンドルは正当なものでしょうか?

・ CanBreak
 CanBreakは強制的に TerminateThread()でスレッドを終了させますが、
その際、void TK::Thread<ThreadRun>::run()の ローカル変数だった auto_ptrがリークしませんか?


・ 今更でちょっと申し訳ないのですがやっぱりこうやって改めてみると、
TK::BaseRunを継承するのはいいのですが、仮引数があるのはちょっと使いづらそうな
印象がありますね。

 いっそのこと、仮引数なしの BaseRunにするようにした方が使いやすいのかもしれません。

Re:マルチスレッドクラス

Posted: 2009年1月07日(水) 13:25
by 組木紙織
今回は経過報告のつもりと、こんな感じのインターフェースにしたいと思うけど、使いやすそうですか?
という意味で立てたものだったので、薄っぺらくても大丈夫です。

これから内部を書き換えてきちんと出せるものができたらもう一度報告するつもりです。


>うわ、前回のにしても1年近く前ですね。
そういえばそうですね。
一年前からずっとこれだけをやっていたわけではなく、別言語やライブラリでのスレッドの扱い方を
調べてたり、まったく関係ないこともしていたので、実質はそんなにやっていなのですが。