JavaでもCでも基本的アイデアさえ理解できてれば一緒だよ。
Javaの場合は言語仕様に、synchlonized修飾子とsynchronizeブロックがある。
そして修飾子またはブロックで指定されたオブジェクトが排他制御の対象になる。

これだけだ