对于下面的程序:
public class MyThread extends Thread{ private Object obj; ...... }
请问,这个MyThread里面的成员变量,是不是线程安全的?
因为,MyThread继承了Thread,其使用方式为:new MyThread().start();所以,这就意味着,每次都是new了新对象,那么,他里面的各个成员变量就是这个对象自己拥有的,所以,是安全的。我这样理解有问题吗?
光阴似箭催人老,日月如移越少年。
スレッド セーフティの概要は、複数のスレッドが同じオブジェクトにアクセスするときに、ランタイム環境でこれらのスレッドのスケジューリングと代替実行を考慮する必要がない場合、呼び出し側で追加の同期やその他の調整を行う必要がないことを意味します。 . このオブジェクトに対する操作と呼び出しでは、正しい結果が得られます。 マルチスレッドの安全性の判断は以下の3つのポイントから分析できます:
複数のスレッドが共有データを操作する場合、スレッドの安全性の問題を考慮する必要があります。
あなたが言及した状況は、あなた自身のスレッドでのみ使用されるため、間違いなくスレッドセーフです。
あなたの理解は正しいです。new MyThread().start() 新しい Thread オブジェクトを使用してスレッドを開始するたびに、共有動作は行われないため、スレッドセーフであり、最も多くの投票を受けた回答です
new MyThread().start()
簡単な例です 他の人が食べたいキャンディーがある場合、それは安全ではないため、箱と鍵をかけて閉じ込める必要があることに気づきました
スレッド セーフティの概要は、複数のスレッドが同じオブジェクトにアクセスするときに、ランタイム環境でこれらのスレッドのスケジューリングと代替実行を考慮する必要がない場合、呼び出し側で追加の同期やその他の調整を行う必要がないことを意味します。 . このオブジェクトに対する操作と呼び出しでは、正しい結果が得られます。
リーリーマルチスレッドの安全性の判断は以下の3つのポイントから分析できます:
複数のスレッドが共有データを操作する場合、スレッドの安全性の問題を考慮する必要があります。
あなたが言及した状況は、あなた自身のスレッドでのみ使用されるため、間違いなくスレッドセーフです。
あなたの理解は正しいです。
リーリーnew MyThread().start()
新しい Thread オブジェクトを使用してスレッドを開始するたびに、共有動作は行われないため、スレッドセーフであり、最も多くの投票を受けた回答です簡単な例です
他の人が食べたいキャンディーがある場合、それは安全ではないため、箱と鍵をかけて閉じ込める必要があることに気づきました