// ( o2.C ) // C++のいんちきオブジェクト−その2 // #include #include // sleep use #include class PPP { int x ; public: PPP(int i) { sleep(i) ; cout << i << endl ; system( "/com/date" ); } } ; main() { PPP p1(3),p2(10),p3(5) ; } /* [結果] 3 Friday, March 19, 1993 7:29:19 pm (JST) 10 Friday, March 19, 1993 7:29:30 pm (JST) 5 Friday, March 19, 1993 7:29:35 pm (JST) [参考] オブジェクトというのは、互いにメッセ−ジを交換しながら協調して、作業を進めるも のであると言われている。このニュアンスから考えれば、個々のオブジェクトは独立し ていて、かつ存在することが等価でなければならない。 しかし上記の結果が示す通り、オブジェクトの動作は平行的ではなく、シ−ケンシャル な動作になっている。シ−ケンシャルな動作というのは、前の処理が終了するのを待っ て、次の処理が始まる動作という意味である。 C++ではこのため見掛け上、平行処理させるためのタスク・ライブラリというものを 用意している。しかしタスク・ライブラリはC++の処理系に標準で入っているわけで ない。NIHには入っていて、どのような処理をしているのか調べてみた。fork、exec 関数はソ−スの中には見当たらず、xxjump 関数があった。ということは、マルチタスク のプロセス制御をするのではなく、メモリをフィックスしてプロセスの制御を切り替え る方法をとっていることになる。 */