検索

ホームページ  >  に質問  >  本文

关于java的多线程的成员变量是否线程安全的疑问?

对于下面的程序:

public class MyThread extends Thread{
    private Object obj;
    ......
}

请问,这个MyThread里面的成员变量,是不是线程安全的?

因为,MyThread继承了Thread,其使用方式为:new MyThread().start();
所以,这就意味着,每次都是new了新对象,那么,他里面的各个成员变量就是这个对象自己拥有的,所以,是安全的。
我这样理解有问题吗?

大家讲道理大家讲道理2807日前1527

全員に返信(14)返信します

  • ringa_lee

    ringa_lee2017-04-18 10:51:12

    スレッド セーフティの概要は、複数のスレッドが同じオブジェクトにアクセスするときに、ランタイム環境でこれらのスレッドのスケジューリングと代替実行を考慮する必要がない場合、呼び出し側で追加の同期やその他の調整を行う必要がないことを意味します。 . このオブジェクトに対する操作と呼び出しでは、正しい結果が得られます。
    マルチスレッドの安全性の判断は以下の3つのポイントから分析できます:

    リーリー

    複数のスレッドが共有データを操作する場合、スレッドの安全性の問題を考慮する必要があります。

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:51:12

    あなたが言及した状況は、あなた自身のスレッドでのみ使用されるため、間違いなくスレッドセーフです。

    返事
    0
  • 阿神

    阿神2017-04-18 10:51:12

    あなたの理解は正しいです。new MyThread().start() 新しい Thread オブジェクトを使用してスレッドを開始するたびに、共有動作は行われないため、スレッドセーフであり、最も多くの投票を受けた回答です

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:51:12

    簡単な例です
    他の人が食べたいキャンディーがある場合、それは安全ではないため、箱と鍵をかけて閉じ込める必要があることに気づきました

    返事
    0
  • キャンセル返事