【发布时间】:2014-10-16 19:03:44
【问题描述】:
要么我真的不了解多线程,要么发生了一些奇怪的事情。
我有以下代码:
public void playMusic(){
new Thread(new Runnable(){
public void run(){
tune.play();
}
}).run();
System.out.println("*******");
}
此方法播放一段音乐。它启动一个新线程并在那里播放音乐,而不是暂停当前线程的执行。
因此,我希望 System.out.println("*********"); 在调用该方法时几乎立即执行,因为冗长的操作 tune.play() 是在不同的线程上调用的。
但实际上********* 仅在音乐结束时才会打印到屏幕上。
你怎么解释这个?以及如何将音乐播放与当前线程分开?
如果有区别,“当前线程”就是 Swing EDT。
【问题讨论】:
标签: java multithreading