• ベストアンサー

スレッドとは、ハッシュテーブルとは

・スレッドの意味が良く分かりません。  何を指すものなのでしょうか? ・ハッシュテーブルはどういう時に私用するものなのでしょうか? 余り理解もせずに使用している感があり、この先自分自身不安になると思い質問をさせて頂きました。 情けながら、ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

スレッド(Thread)はひもや糸の意味ですが、インターネットでよく用いられるのは電子掲示板BBSにおいて「ひとつなぎになった関連のある質問と回答」を指すことが多いと思います。 コンピュータのOSの世界でもスレッドという用語が使われますが、これは、コンピュータが複数の仕事を同時並行で実行するための仕組みの一つです。同じ働きのものにプロセスという考え方がありますが、プロセスがメモリー空間を別にして実行するのに対して、同じメモリー空間で実行するために、安全性は低下しますが、切り替えを素早く行うことができ、スループットが向上します。 http://www-6.ibm.com/jp/developerworks/linux/020412/j_l-rt7.html ハッシュテーブルは多数のデータをできるだけ早く検索できるようにするために、呼び出しのためのキーとデータを指し示すテーブル(ハッシュテーブル)を関連づけるためのデータ構造をさします。例えば、次から次へと増え続ける名簿があり、この中から「Aさん」という人物を検索することを考えます。このとき名簿がABC順に並べ直されていればいいのですが、時間と共に増えたり削除されて一定ではないときに、毎回頭から全部検索するのはコストがかかります。そこでハッシュ関数という「Aさん」という文字列を入力すると整数値を出力してくれる関数を定義します。出力される整数値の場所にデータを収めて、呼び出すときもハッシュ関数を用いれば簡単に見つけることができます。問題は、そのハッシュ関数が次々と入力される名簿を必ず空きのテーブルに導いてくれるかどうかです。既にデータが収納されているところをさしてしまうことを「衝突」と呼びますが、衝突ができるだけ少ないハッシュ関数が優れた関数だといえます。 http://www005.upp.so-net.ne.jp/h-masuda/ProText/CAlgo/hash01.html

soushi_ni
質問者

お礼

お返事が遅れて申し訳ありません。 とても、理解しやすいご説明でした。 ありがとうございました。

関連するQ&A