ExecutorService executor = Executors.newFixedThreadPool(2);
-上述语句创建的线程池具有2
executor.execute(new Worker());
固定大小 -上述语句采用类工人已实现Runnable
的一个实例接口。
-现在这里Executors
是一个中间对象,执行任务。它管理线程对象。
-通过执行上面的语句run()
方法将被执行,而一旦run()方法完成后,线程亘古进入死亡状态,但移动放回池中,等待有另一个工作分配所以它可以再次进入Runnable状态,然后运行,所有这些都由Executors处理。
executor.shutdown();
-上面的语句将关闭执行人本身,适当地处理其管理的所有线程的关机.. shutdown()
该中心对象,这反过来又可以终止每个注册执行人对。
////////// Edited Part//////////////////////
- 所有可运行的首先有一个run()方法,该方法不能返回任何东西,和run()方法不能抛出checked异常,因此可赎回在Java 5中,这是参数化类型的介绍,并有一个名为call()的方法,它能够返回并抛出Checked异常。
现在看到这个例子:
Thread t = new Thread(new Worker());
t.run();
t.start();
-t.run()
仅仅是run()
方法的简单的通话,这不会跨越一个thread of execution
。
-t.start()
而准备的东西为thread of execution
的initialization
重要,然后电话的run()
方法Runnable
,然后分配的Task
到新成立的thread of execution
和快速返回....
使用Swing
和时,Java中的线程成为必需。 主要是GUI组件。
概念上它很容易。您启动一个固定数量的运行方法在队列中等待的队列。您将工作请求发送到队列,运行方法将请求解除队列并执行工作请求。然后他们又回到队列中等待。诀窍是找到正确类型的队列--JDK中有六个,但只有一个特殊的(最后我看了)适合这个,它隐藏在一个角落里。 –