Javaマルチスレッドの基本的な概念はいくつか知っていますが、同時に動作する5つのスレッドを作成したいと考えています。スレッドの実行時間を取得するにはどうすればよいですか?...方法や目的など、スレッドの深い概念について誰か助けてください。
4 に答える
2
あなたの質問は本当に不明確です。スレッドの実行時間とはどういう意味ですか? 開始時と停止時 (経過時間) または、保留中の時間を除いて実際に実行されていた時間 (つまり、CPU 時間)?
Java でスレッドごとの CPU 使用率を監視するをご覧ください。
ところで、スレッド化は、StackOverflow の回答から簡単に学べるものではありません。
Java の公式ガイドでは、同時実行性について非常によく説明されています: http://docs.oracle.com/javase/tutorial/essential/concurrency/
「Java Concurrency in Practice」という本はさらに優れています。
于 2013-10-03T05:22:28.007 に答える
0
このコードのようなものは役に立つかもしれませんhttp://blog.sheidaei.com/2013/06/simple-thread-example-in-java.html。
System.out.println() の代わりに System.currentTimeMillis() を使用して、スレッドの実行時間を取得できます。
/**
* Created with IntelliJ IDEA.
* User: shahin
* Date: 6/5/13
* Time: 11:32 PM
* To change this template use File | Settings | File Templates.
*/
public class SimpleThread implements Runnable{
public SimpleThread(String simpleName) {
this.simpleName = simpleName;
System.out.println(">>> Constructor for " + getSimpleName());
}
public String getSimpleName() {
return simpleName;
}
public void setSimpleName(String simpleName) {
this.simpleName = simpleName;
}
private String simpleName;
@Override
public void run() {
System.out.println(" >> "+getSimpleName() + " started.");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
System.out.println(" >> "+getSimpleName() + " stopped.");
}
public static void main(String args[])
{
System.out.println("Main Thread started.");
SimpleWaitNotifyThread simpleThread;
Thread thread;
for(int i=0;i<5;i++)
{
simpleThread = new SimpleWaitNotifyThread("Thread "+(i+1));
thread = new Thread(simpleThread,"Thread "+(i+1));
thread.start();
}
System.out.println("Main Thread finished.");
}
}
于 2013-10-03T05:26:22.153 に答える