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