首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA多线程(1)

2012-09-20 
JAVA多线程(一)Java多线程基础1、实现线程的方式  在Java中线程的实现无外乎两种方法:实现Runnable接口、继

JAVA多线程(一)
Java多线程基础
1、实现线程的方式
  在Java中线程的实现无外乎两种方法:实现Runnable接口、继承Thread类:
  实现Runnable接口


  在上面的例子中,并没有使用直接使用Thread类的start()方法执行线程,而是交给了Executor来管理线程的执行。

  Executors.newCachedThreadPool()方法创建一个ExecutorService(一个Executor的实现),Executor会为每个需要执行的任务创建一个线程并执行它;当Executor的shutdown()方法被调用后,就不能再把任务提交给Executor了,否则会报java.util.concurrent.RejectedExecutionException异常。

  除了CachedThreadPools,还有FixedThreadPools和SingleThreadExecutor。三者的区别非常简单,CachedThreadPools根据需要创建足够多的线程;FixedThreadPools在初始化的时候就创建好固定数目的线程;SingleThreadExecutor就像是大小为1的FixedThreadPools,同一时间只会有一个线程在执行。

  从下面的例子就可以看出来当有多个任务提交给SingleThreadExecutor时,这些任务将按照提交的顺序一个一个的执行;同样的道理也适合FixedThreadPools。

  输出结果

  输出结果
     2 楼    koubai    2011-11-14              very well    3 楼    fd_zhaoshuo    2011-11-15              写的挺好的    4 楼    冬天秋天    2011-11-29              没有注意到java5的新特新,学习了。 

热点排行