Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

バックグラウンドでもシングルスレッド?

ちょっと解らないコードがあったので質問します。
if (task.method.isBackground) {//バックグラウンドで実行するメソッドかどうか
    if (task.method.isSingleThread) {//シングルスレッドで実行するメソッドかどうか
        task.method.isInUse = true; //シングルスレッドのメソッドを使用中にする
    }
    backgroundExecutor.execute(task);//バックグラウンドで実行
}
上記を見るとバックグラウンドで実行するシングルスレッドのメソッドになるのですが、
バックグラウンドと言うことは他にスレッドが実行中ですよね?
これってマルチスレッドにはならないのでしょうか?

3

回答

216

閲覧

3件の回答

評価

0

なんのコードか分からんけど、「全体がシングルスレッドで動作していること」ではなく、「このメソッドはスレッドアンセーフである」ことを示しているように読める。

評価

0

回答ありがとうございます。
例えば下記のようにtask.methodが使用中ならwhileで終わるまで待つみたいな実装って普通にやりますか?
while(task.method.isInUse){}
backgroundExecutor.execute(task);

評価

0

あるけど、whileを回すならスリープを挟むなりしないとな。

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名