作品やら思ったコトを書き留めておく、付箋みたいなトコロ。
M.E.の思うトコロ
カレンダー
2024年11月 | ||||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 | ||
1 | 2 | |||||||
3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
10 | 11 | 12 | 13 | 14 | 15 | 16 | ||
17 | 18 | 19 | 20 | 21 | 22 | 23 | ||
24 | 25 | 26 | 27 | 28 | 29 | 30 | ||
|
カテゴリ
PIXTAやってます
検索
ブログランキング
過去の記事
最新の投稿
秋晴れが心地よい季節に |
朝晩の冷え込みが涼しいを超えてくる頃 |
10月に入っていよいよ秋らしい空気 |
そろそろ芋を掘る季節? |
秋の空気がしないでもない夕暮れ |
一転、またムシムシした空気が・・・ |
今朝はやっと秋が感じられる空気に! |
昨日の雨が残るどんより空・・・ |
秋雨が過ぎるごとに霧の濃さが |
最後の残暑が過ぎた感じ? |
最新のコメント
Unknown/RyzenでPlanetCoasterを少しでもなめらかにする方法 |
yusuke/壊リス壊の対戦AIの研究について |
粉塵ex/壊リス壊の対戦AIの研究について |
NOiA/壊リス壊の対戦AIの研究について |
ME by960/UI関係を試せる程度に実装したので公開 |
Unknown/UI関係を試せる程度に実装したので公開 |
粉塵ex/壊リス壊にリプレイ機能搭載 |
Unknown/壊リス壊にリプレイ機能搭載 |
ME by960/壊リス壊で拡大表示の機能を実装(まだ使えない) |
Unknown/壊リス壊で拡大表示の機能を実装(まだ使えない) |
最新のトラックバック
ブックマーク
プロフィール
goo ID | |
meby960 |
|
性別 | |
都道府県 | |
自己紹介 | |
もふもふ最高です。 |
goo ブログ
gooおすすめリンク
サーバー側のコードがだいぶ揃ってきました。
サーバーを改造しやすいように、部品を色々作りました。
・安全に可変長の領域を確保できるクラス。
安全のため、途中からのサイズ変更は不可。
もちろん、スレッドセーフ。
・大量のデータ領域を安全に管理するクラス。
途中からの要素数の変更は不可。
要素の挿入では、どんなサイズでも受け付ける。
もちろん、スレッドセーフ。
・ソケットの送信と受信を管理するクラス。
受信は自動でしてくれます。
もちろん、スレッドセーフ。
・ミューテックスを安全に管理するクラス。
だいたいこんな感じです。
・安全に可変長の領域を確保できるクラス。
安全のため、途中からのサイズ変更は不可。
もちろん、スレッドセーフ。
・大量のデータ領域を安全に管理するクラス。
途中からの要素数の変更は不可。
要素の挿入では、どんなサイズでも受け付ける。
もちろん、スレッドセーフ。
・ソケットの送信と受信を管理するクラス。
受信は自動でしてくれます。
もちろん、スレッドセーフ。
・ミューテックスを安全に管理するクラス。
だいたいこんな感じです。
コメント ( 20 ) | Trackback ( 0 )
« やっぱり、ラ... | 訳あって、サ... » |
スレッドセーフと排他制御を搭載した、バッファ用のクラスを書こうとすれば、
普通の配列もしくは、配列の長さを格納できるようにした配列格納クラスの方が使い勝手が良いです。
Vectorクラスはオーバースペックどころか、余計な物が付いていて・・・。
STLが、マルチスレッドを余り意識していないというか、
2つ以上のスレッドから参照しようとすれば、内容が見えなくて、使いにくくてしょうがない。
色々、STLのソースを見ながら考えるよりは、自分で作ったほうが、デバッグしやすい・・・。
継承「……」
Cテンプレート「え?なにかよう?」
Dテンプレート「YOU! こっちきちゃいなYO!」
てか、排他制御しながらコピー取るのって、しんどくね?
排他制御しながら operator= をオーバーロードしたりするのが、結構しんどい。
どちらかというと、設計の問題ですね・・・。
あと、試しにD言語で書いてみようかと。
D言語見たら、文字列の操作がかなり良い。
スレッドの排他制御に関しても、開放し忘れが起こりにくい。
ただ、マイナー言語のため、ライブラリがちょっと貧弱かも・・・。
これでは、2DゲームやサーバーやCGIくらいしか作れない・・・。
たぶん、勘違いじゃないかな。
まあ、GUIに関しては、快適に使える状況じゃないけどww(工夫すれば使える)
D言語のライブラリが貧弱ってのは、3Dに関してですね。
これらは、旧verまでしか使えませんね・・・。
OpenGL→1.0
DirectX→9.0c
コレ以外はC言語のライブラリが使えるので、余り困らないですが。
それにしても、なんで旧バージョンのグラフィックスライブラリしか使えないと思ってるんだろう?
gccのバージョンを上げたのに入ってないって言われる・・・。
普通にgccでコンパイルできるのに、動かない・・・。
必要なものも全部入れたのに・・・。
>それにしても、なんで旧バージョンのグラフィックスライブラリしか使えないと思ってるんだろう?
それは、旧バージョンのライブラリ使うページしか見つからないからです。
PATH もしくは CC という名前の環境変数に、 GCC のリンカがあるパスを設定するんだ。
違う名前の変数に設定したり、設定の書式が間違ってたりすると、正しく動かないから注意だ!
>それは、旧バージョンのライブラリ使うページしか見つからないからです。
( ゜д゜)ポカーン
俺ね、OpenGLはCインターフェイスが、DirectXはCOMインターフェイスが実装されてるから、使えると思うんだ。
バージョン関係無く。
あと、gccにちゃんとパスが通っていて、バージョンにも4.5.2と出ます。
もちろん、今までのソースのコンパイルも通りますし、動きます。
……そんな装備で大丈夫か?
>あと、gccにちゃんとパスが通っていて、
本当にちゃんと通ってる?
カレントディレクトリが、gccをインストールしたディレクトリじゃ 無 い 時に、
gcc
だけを入力したらちゃんとgccが起動するか?
起動するなら、俺の思いすごしかな・・・
しつこいって? でも俺は、これですごい悩んだ事があるからね・・・
こんな単純な事で、見当違いの文書を読み漁った三日間・・・
DMDをrpm使わずに入れてみたら、
どうやら、CentOSに必要とするライブラリのパッケージが無いか、
バージョンが違って、起動できないみたいです。
あんまりにもめんどいので、GDC入れました。
こちらは、GCC4.1.2向け(ライブラリも含め)
のヤツが用意されているので、すんなり入りました。
解決おめでと。 そしておつかれさま。
途中、とてもイライラしてたので、ギスギスしてしましました。
どうもすみませんでした。
あと、D言語の標準ライブラリのSocketのクラスの使い方が、いまひとつ解らないですね。
スレッドもデタッチの仕方が分からないし、
結局C言語のsys以下のライブラリを使うしか・・・。
まず、Socketクラス(またはTcpSocketかUdpSocket)のインスタンスを作って、
自分側から接続を確立するときは、connect()関数にInternetAddressのインスタンスを渡す、
相手側からの接続を受けるときは、accept()関数を呼び出す。
・・・で、いいのかな?
Dのライブラリでのスレッドは、強制的に止めることは出来ないので、
有限の時間で必ず止まる関数でスレッドを作るか、
スレッドを止める通知が出来る、Threadクラスを継承したクラスを作って使ってください。
Socket関係はそんなに簡略化されていたんですね・・・。
従来のBSDソケットのつなぎ方とは大きく外れていて、
そこまで思いつきませんでした。
あと、スレッドに関しては、逆にめんどくさくなってますね。
ミューテックスの管理が楽な分、使う価値がありますが、
デタッチしないでどこまでスレッド吐き出せるんだろうか・・・。
あとで、実験して確かめてみます。
一応は、今のサバースペックでは、
C++だと1万3千いけました。