課程
/后端開發
/Java
/深入淺出Java多線程
問個簡單的問題,在給現成設定了名字時,為什么執行run方法中打印線程的名字都是系統指定的名字,而不是我設定的名字?
2014-10-27
源自:深入淺出Java多線程 2-1
正在回答
正常來說Thread對象的setName方法就應該生效。
這個需要分析代碼了。把你的代碼提出來吧。
hegang 提問者
public class TestThread {
public static void main(String[] args) {
ExecutorService service = Executors.newFixedThreadPool(2);
RunnableTest rt = new RunnableTest();
Thread t1 = new Thread(rt, "t1");
Thread t2 = new Thread(new RunnableTest(), "t2");
service.execute(t1);
service.execute(t2);
}
class RunnableTest implements Runnable {
public void run() {
for (int i = 0; i <= 20; i++) {
// 得到當前線程的名字
String str = Thread.currentThread().getName();
System.out.println(str + ":" + i);
seno_0001
舉報
帶你一起深入淺出多線程,掌握基礎,展望進階路線
4 回答敢問這個程序是怎么結束的嗎?
3 回答簡化老師線程創建代碼
6 回答鎖lockObj如果寫成靜態的會不會有什么影響?
4 回答為什么聲明變量keepRunning時出錯
3 回答講的太亂了
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2014-10-27
正常來說Thread對象的setName方法就應該生效。
2014-10-27
這個需要分析代碼了。把你的代碼提出來吧。
2014-10-31
public class TestThread {
public static void main(String[] args) {
ExecutorService service = Executors.newFixedThreadPool(2);
RunnableTest rt = new RunnableTest();
Thread t1 = new Thread(rt, "t1");
Thread t2 = new Thread(new RunnableTest(), "t2");
service.execute(t1);
service.execute(t2);
}
}
class RunnableTest implements Runnable {
public void run() {
for (int i = 0; i <= 20; i++) {
// 得到當前線程的名字
String str = Thread.currentThread().getName();
System.out.println(str + ":" + i);
}
}
}