Java.util.concurrent.ExecutorServiceを使用したJavaスレッドの非同期実行
1332 ワード
Java非同期実行方法:
まず最も簡単なスレッドを作ってRunnableインタフェースを実現します
まず最も簡単なスレッドを作ってRunnableインタフェースを実現します
public class SimpleRunner implements Runnable
{
int runIndex = 0;
public void setRunIndex(int runIndex)
{
this.runIndex = runIndex;
}
public void run()
{
try
{
//3
Thread.sleep((long) (Math.random() * 3000));
System.out.println("start run:" + runIndex);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ExecutorService
public class SimpleSync
{
// 10 .
final static ExecutorService exec = Executors.newFixedThreadPool(10);
public static void main(String[] args)
{
System.out.println("Start first SYNC program.");
// 10
for (int i = 0; i < 10; i++)
{
SimpleRunner runner = new SimpleRunner();
runner.setRunIndex(i);
exec.submit(runner);
}
exec.shutdown();//
System.out.println("Finish first SYNC program.");
}
}
すると、 のような が られます.
Start first SYNC program. Finish first SYNC program. start run:4 start run:8 start run:2 start run:3 start run:0 start run:6 start run:5 start run:1 start run:7 start run:9
これにより,スレッドが で されていることが らかになり,テストクラスのmainメソッドはすでに している.