-2

1 つの関数が 2 つの異なるファイルから呼び出されてデータをロードします。場合によっては、1 つのファイルからロードされ、別のファイルからロードされます。ただし、まれに両方のファイルから呼び出されることがありますが、これは避けるべきです。

グローバル変数を取得するか、関数を使用して、データの読み込みが 1 回だけ行われるようにすることができます。

よりエレガントなソリューションを探しています。

Linuxはこれを達成するためのAPIを提供していますか?

ありがとう

4

2 に答える 2

4

複数のスレッドについて話している場合は、関数が既に実行されているかどうかを示す静的変数の周りに、ある種のミューテックスが必要です。

スレッドが 1 つしかない場合は、ミューテックスは必要ありません。

于 2013-01-25T01:47:46.877 に答える
0

マルチスレッドの場合は、この回答で提案されているように静的変数の周りにミューテックスを使用するか、 pthread_onceを使用して ください。

于 2013-01-25T06:47:05.017 に答える