gaaamiiのブログ

悪気なく間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

スレッドってなんだ

まとめていくかもしれない。

背景

  • 仕事で扱ってるはずなのによくわかってない部分がある
  • セマフォミューテックスってなんだって5回くらい思い返してる
  • OSがなにしてるのかよくわからん
  • CPUやらメモリのこと、ひいてはコンピューターアーキテクチャよくわからん

なんとなくわかっている(感じている)こと

  • スレッドは同一プロセス内で複数動かすことが出来る(そのときリソース(メモリの領域?)取り合っておかしくならないようにセマフォやらミューテックスが必要になるらしい)
  • 以前枕元に置いておいて結局あまり読み進められなかったUNIX詳解プログラミングにいろいろ書いてあったはず
  • マルチスレッドでいろいろ動くやつはテストするのがつらい(?)
  • ちゃんと知っている人は偉い

簡潔な説明

GLib Reference

Threads act almost like processes, but unlike processes all threads of one process share the same memory.

Wikipedia

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.

In computer architecture, multithreading is the ability of a central processing unit (CPU) or a single core in a multi-core processor to execute multiple processes or threads concurrently, appropriately supported by the operating system.

これのために手を伸ばしている本

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

詳解UNIXプログラミング 第3版

詳解UNIXプログラミング 第3版