A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张东健 中级黑马   /  2014-3-19 20:03  /  1186 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张东健 于 2014-3-20 00:56 编辑

在张老师银行业务调度系统中,在服务窗口启动时用的线程方法是Executors.newSingleThreadExecutor(),这个看方法名就是启用了一个线程,这个方法和Executors.newScheduledThreadPool(1)是一个意思吗,还有窗口为什么就启动一个线程呢,我启动多个不行吗

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

4 个回复

倒序浏览
好像不一样,newSingleThreadExecutor线程执行任务失败会创建一个新的线程。
回复 使用道具 举报
可以同时启动多个线程,在窗口类里用一个静态变量指向;或外部传入ExecutorService对象进去
回复 使用道具 举报
e.c 发表于 2014-3-19 20:16
可以同时启动多个线程,在窗口类里用一个静态变量指向;或外部传入ExecutorService对象进去 ...

静态变量指向?,能否大白话解释下
回复 使用道具 举报
张东健 发表于 2014-3-19 20:42
静态变量指向?,能否大白话解释下

一个窗口只要一个线程运行就可以了,所以每个窗口都newSingleThreadExecutor()启动了一个线程

如果一下启动多个线程放到池中,让服务窗口都用这个线程池:是不是下面这个意思?
static ExecutorService es = Executors.newFixedThreadPool(3)//3个服务窗口
es.execute(new Runnable() {public void run() {//具体服务代码}}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马