n...、、根据n判断执行的线程数
LinkedBlockingQueue queue=new LinkedBlockingQueue<Runnable>();
ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 35, 1, TimeUnit.SECONDS, queue);
for(int i=0;i<n){
Main m=.. //要执行线程
executor.execute(m);
}
现在我n为多条时,还是一条一条执行 ,并没有并发
解决方案 »
- 求助,jsp页面<s:if test="">中 取当前页面<s:textfield >标签的value进行比较 在线等,谢谢
- 急!!!关闭网页时怎样让session失效?
- 求教下JSON的时间的问题
- 调用类的get方法报空指针异常
- 请教学习J2EE的前辈们
- 各个企业在元旦前夕有没有招聘!
- 好难的关于javascript兼容的问题?使用的struts2提交
- 求在JSP中显示树形结构(在线等)。。。。。
- 如何在Servlet中书写like查询语句
- 高分求TOMCAT+MSSQL2000的虚拟主机,UP有分~~
- DWR如何自动生成util.js engine.js
- 后台报错java.sql.SQLException: Column 'BoardId' not found.
具体规则看ThreadPoolExecutor的API,异常详细
当corePoolSize<n<maximmPoolSize时,需要都LinkedBlockingQueen中排队,满了才创建新线程,这就是为啥楼主的程序里一条一条输出的原因,因为你的排队器默认的是无界值(Integer.MAX_VALUE)。
当corePoolSize和maximumPoolSize大小相同时相当于创建了固定大小的线程池。因而程序是并发的。
不知道楼主明白否?