質問です。
コールバック関数を作りたいのですが
コールバックって、通常何らかの物を監視してて
変化があれば、指定された関数を呼び出すって形だと思うんですが

監視し続ける方と、メインでコールバック関数だけ登録して継続していく方の
2つのスレッドが必要だと思うんですが・・・。
一般的に、コールバックを実装する時は、マルチスレッドにするのでしょうか?

もしする場合、コールバックされた関数は2つ目のスレッドが実行を行う事になり
スレッドセーフではないですよね?
何らかのMUTEXなり、対策が必要だと思うんですが、Win32APIでよくあるコールバックって
別にそういう調停オブジェクトを指定したりしてませんよね?
一体どうやってるのでしょうか?