つまり、その関数内において、静的変数やグローバル変数を使用している場合は
排他処理をする、それらの変数を使用していない場合は特に何もする必要はないという事ですかね?

あと、その関数自体を全て排他処理したらプログラムがフリーズしてしまいました。
なんか排他処理を色んなところで使ってると時々プログラムが応答なしになります。
排他処理を細かく分けてちょくちょくやれば正常に動いたり・・・
一体何が起きているのでしょうか?