空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

スレッドについて

プロセスとスレッドの違い

  • プロセス:メモリ領域が独立しているので安全、しかし切り替えに処理が多い
  • スレッド:切り替えのコストは低いが、干渉しないように考慮する必要がある

参考:

イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog

連載.NETマルチスレッド・プログラミング入門:第1回 マルチスレッドはこんなときに使う (1/2) - @IT

スレッド化のキーポイント

  • レスポンスタイム

ex: ダウンロード中のほかの操作など

ex: ネットワークやディスクへのアクセスは時間がかかるがCPUの処理は低いため、この時CPUを有効活用する

スレッドの実装のイメージ

わかりやすい👇

参考:

スレッド - Python入門から応用までの学習サイト

オーバーヘッド

  • 行いたい処理とは別に付加的に必要な処理や時間

ex : 送りたいデータではなく、その制御に使う処理

参考:

オーバーヘッドとは|overhead : 意味/定義 - IT用語辞典

コンテキストスイッチ

  • スレッド間での切り替え動作

参考:

連載.NETマルチスレッド・プログラミング入門:第1回 マルチスレッドはこんなときに使う (1/2) - @IT