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();
線程安全的概述是指當多個執行緒存取同一個物件時,如果不用考慮這些執行緒在運行時環境下的調度和交替運行,也不需要進行額外的同步,或者在呼叫方進行任何其他的協調操作,呼叫這個物件的行為都可以獲得正確的結果。
判斷多執行緒的安全可以從以下三點分析:
如果多個執行緒操作一個共享數據,就要考慮執行緒安全性問題。
就單純你說的這個情況,肯定是線程安全的,因為只有你自己線程使用.
你的理解是正確的,
new MyThread().start()
每次都是new Thread 物件來啟動線程,不存在共享行為,所以是線程安全的,最高票的答案一個簡單的例子
如果你有一個糖果 別人都想吃 那麼就是不安全,這樣你就發現你需要一個盒子和鎖把它鎖起來