Tinjauan keseluruhan keselamatan benang bermakna apabila berbilang benang mengakses objek yang sama, jika tidak perlu mempertimbangkan penjadualan dan jalan ganti benang ini dalam persekitaran masa jalan, tidak perlu melakukan penyegerakan tambahan atau melakukan apa-apa jika tidak pada operasi Penyelarasan pemanggil, memanggil gelagat objek ini boleh mendapatkan hasil yang betul. Menilai keselamatan multi-threading boleh dianalisis daripada tiga perkara berikut:
Pemahaman anda betul, new MyThread().start() Setiap kali objek Thread baharu digunakan untuk memulakan utas, tiada tingkah laku perkongsian, jadi ia selamat untuk thread, jawapan yang paling banyak diundi
MyThread mt = new MyThread(); // 这里只 new 了一个对象,然后多线程操作,会存在线程安全问题
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
// MyRunable mr = new MyRunable();
// new Thread(mr).start();
// new Thread(mr).start();
// new Thread(mr).start();
Contoh mudah Jika anda mempunyai gula-gula dan orang lain mahu memakannya, maka ia tidak selamat, jadi anda mendapati bahawa anda memerlukan kotak dan kunci untuk menguncinya
Tinjauan keseluruhan keselamatan benang bermakna apabila berbilang benang mengakses objek yang sama, jika tidak perlu mempertimbangkan penjadualan dan jalan ganti benang ini dalam persekitaran masa jalan, tidak perlu melakukan penyegerakan tambahan atau melakukan apa-apa jika tidak pada operasi Penyelarasan pemanggil, memanggil gelagat objek ini boleh mendapatkan hasil yang betul.
Menilai keselamatan multi-threading boleh dianalisis daripada tiga perkara berikut:
Jika berbilang rangkaian beroperasi pada data yang dikongsi, isu keselamatan rangkaian mesti dipertimbangkan.
Situasi yang anda nyatakan pastinya selamat untuk thread, kerana ia hanya digunakan oleh thread anda sendiri.
Pemahaman anda betul,
new MyThread().start()
Setiap kali objek Thread baharu digunakan untuk memulakan utas, tiada tingkah laku perkongsian, jadi ia selamat untuk thread, jawapan yang paling banyak diundiContoh mudah
Jika anda mempunyai gula-gula dan orang lain mahu memakannya, maka ia tidak selamat, jadi anda mendapati bahawa anda memerlukan kotak dan kunci untuk menguncinya