マルチスレッドは初めてです。無限ループのみを実行するスレッドを作成しました。次の関数を実行します。
while (1)
{
__android_log_print(ANDROID_LOG_VERBOSE, "from thread3", "from thread3", 1);
}
私が理解していないのは、私のアプリケーションがなぜこのスレッドが作成されたときにブロックされます(つまり、他のスレッドはスリープしています)。つまり、スレッドは正常に実行されています(ログメッセージが表示されます)が、他の2つのスレッドよりも先に停止しているように見えるためです。スケジューラはこれを処理してスレッドを切り替えるべきではありませんか?
詳細:このスレッドは、std :: threadsを使用してc ++側から作成されます。
回答:
回答№1の場合は-1スケジューラーにスレッドを一時停止させたい場合は、定期的に解放して一時停止させる必要があります。 sleep()を使用します。