昨天面試的一道上機題
我做錯了
題目是這樣的,設計4個執行緒,兩個加1,兩個減1。
當時由於不知道內部類怎麼用,就把執行緒都寫成靜態的了,回來看了一下內部類的用法。寫了一下:
public class threads
}class threada extends thread
}class threadb extends thread}}
執行那個結果
+++1
+++2
---1
---0
用concurrent包,簡單一點。
public class threads
};
// 往執行緒池中新增任務,執行緒開始處理這些任務
ex.execute(task);
}
// 減 一
for (int i = 0; i < 2; i++)
};
// 往執行緒池中新增任務,執行緒開始處理這些任務
ex.execute(task);
}
// 關閉執行緒池,不會阻塞主線程的執行【這裡是main執行緒】
ex.shutdown();
} }
執行結果是
++2++1
--1--0
上面的是否有上面問題,哪位給指正一下。
發現,概念的東西記得再多,也不及親自動手實踐。
補充:對於thread和runnable的區別一直只限於,乙個是繼承thread類,乙個是現實runnable介面,重來沒有注意他們的建立的不同
threada a = new threada(); //runnable實現
thread mythread = new thread(a);
mythread.start();
threadb b= new threadb(); //thread實現
b.start();
內部類與匿名內部類
內部類 內建類,巢狀類。將類定義在另乙個類中,該類就是內部類。類中定義的類中就是內部類。其實類的定義位置發生了一點小變化。訪問方式 內部可以直接訪問外部類中的成員。外部類想要訪問內部類,需要建立內部類物件。什麼時候定義內部類呢?當分析乙個事物時,該事物的內部還有具體的事物,這個具體的事物在使用該事物...
內部類與匿名內部類
內部類 定義 在類中定義乙個類,那麼這個類就是內部類。內部類的定義格式 成員方法 1.通過外部類方法,建立內部類物件,呼叫內部類方法。2.外部類.內部類 物件名 new 外部類 內部類 成員變數 1.外部類的成員變數,內部類中直接使用。2.內部類的成員變數,外部類不能直接訪問。需要建立內部類物件,用...
Java內部類與匿名內部類
定義在類中方法之外的內部類分為例項內部類和靜態內部類.例項內部類自動持有外部類的例項的引用,即可以訪問外部類的所有變數 靜態內部類可以直接訪問外部類的靜態成員 定義在方法中的內部類叫區域性內部類,該類只能訪問被final修飾的區域性變數和引數 介面定義如下 inte ce super 例子1 pub...