-
一个程序里,是不是只应该只有一个线程池?0
我现在用Netty+spring+Mybatis做了一个长连接服务端,内部有多处要执行短暂的并发任务,还需要做定时任务,我需要用到ExecutorService和ScheduledExecutorService两者,但是这两者貌似一个就是一个线程池,而且我试用线程的地方有多处,我有两个问题,一能否把他们统一成一个线程池,二是我是不是必须把这个线程池作为一个全局变量(静态)才能保证到处被调用?2014年3月28日 09:28
6个答案 按时间排序 按投票排序
-
又看了一下API
Executors虽然实现线程池,但如果提交线程过多内存肯定会吃内存。利用底层ThreadPoolExecutor来实现,当队列满的时候自动阻塞。
http://heipark.iteye.com/blog/1393847这个博客讲了原理。
http://blog.163.com/nihaonihao1987@126/blog/static/111580868201151510233125/这个是spring中配置。2014年3月29日 00:26
-
问题的关键不在于使用多少个线程池, 而在于实际有多少个线程.
虽然一般线程池都会只开一个.
但是你看netty源码, 应该就知道, 其他他使用好几个线程池的.2014年3月28日 18:57
-
java代码的话就要设计全局。spring中通过配置ThreadPoolTaskExecutor也可以实现线程池,对应java中ThreadPoolExecutor,java中所有线程池底层都是ThreadPoolExecutor实现的。但手动实现ThreadPoolExecutor比较麻烦,Executors中已经对这些线程接口做了实现,帮助文档建议使用些类。
2014年3月28日 18:05
-
ScheduledExecutorService 继承ExecutorService 。都是接口啊、
Executors.newScheduledThreadPool 这个就是线程池啊。
ExecutorService es=Executors.newScheduledThreadPool 你可以用这个一个就行吧。
即可以调度
schedule方法。
submit方法就是运行线程呗。2014年3月28日 15:35
相关推荐
只有当阻塞队列满了,如果还有任务添加到线程池的话,会尝试new 一个Thread的进行救急处理,立马执行对应的runnable任务;如果继续添加任务到线程池,且线程池中的线程数已经达到了maximumPoolSize,那么线程就会就...
线程池远不是服务器应用程序内使用多线程的唯一方法。如同上面所提到的,有时,为每个新任务生成一个新线程是...然而,由于只有一个AWT线程,因此要在AWT线程中执行任务可能要花费相当长时间才能完成,这是不可取的。
(AppDomain)挂钩,一个AppDomain只有一个线程池。假如在线程池中执行了一个周期较长的任务,一直占用着其中一个线程,可能就会影响到 应用程序域中的其他程序的性能。例如,假如在Asp.Net的线程池中执行一个周期较长...
在设置线程池线程个数的时候,经常会想到这个问题,是不是设置的线程数越多越好?理解这个问题之前我们要先清楚的知道我们为什么使用多线程。 为什么会使用多线程 使用多线程的主要目的我们应该都能回答的出来就是...
* 所有进程使用一个共享的线程池,还是每个进程使用独立的线程池? * 为什么不要手动线程池设置最大值? * .Net线程池有什么不足? 同步 * CLR怎样实现lock(obj)锁定? * WaitHandle是什么,他和他的派生类怎么...
• 所有进程使用一个共享的线程池,还是每个进程使用独立的线程池? • 为什么不要手动线程池设置最大值? • .Net线程池有什么不足? 同步 • CLR怎样实现lock(obj)锁定? • WaitHandle是什么,他和他的派生类怎么...
• 所有进程使用一个共享的线程池,还是每个进程使用独立的线程池? • 为什么不要手动线程池设置最大值? • .Net线程池有什么不足? 同步 • CLR怎样实现lock(obj)锁定? • WaitHandle是什么,他和他的派生类怎么...
,向线程池中投递一个可执行的函数子程序指针,和投递任务_int()基本一模一样,在内部自动转换成指针地址到整数(子程序指针) 6. 投递任务_int() 向线程池中投递一个可执行的函数指针地址 7. 等待任务动态() :就是...
ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高版本的Windows才有的API函数。 将线程安放在线程池里,需
单例模式的线程安全日志记录器类:需要设计一个类,保证在多线程环境下只有一个实例存在,并能够正确记录日志信息。 并发安全的阻塞队列类:需要设计一个线程安全的队列类,支持多线程的插入和移除操作,能够正确...
内含课程内容和讲义PPT,本实例主要通过演示多线程的应用,多线程应用中容易出现的问题,互斥对象的讲解等,比如如何采用互斥对象来实现多线程的同步,如何利用命名互斥对象保证应用程序只有一个实例运行,并使用多...
什么叫线程池,一般执行程序是不仅仅只有一个线程,如果没有线程池,那么每次我们都有去创建一个个线程来用
编写代码实现一个线程池 40.描述一下JVM加载class文件的原理机制? 41.试举例说明一个典型的垃圾回收算法? 42.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 43.请写一个java...
这个应用程序的主程序是:MainThreadPoolTest 使用无界缓冲区解决方案,这可能会造成 OOM,改进是使用有界队列,目前的方法是在可用的接口定义之上开发的,只有 poolsize 作为状态变量 使用 system.out.println ...
需要用户释放使用权切换到其他协程,因此同一时间其实只有一个协程拥有运行权,相当于单线程的能力。 * 一个线程可以有多个协程,一个进程也可以有多个协程。 * 协程不被操作系统内核管理,而完全是由程序控制。线程...
另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...
5.2 Adaptive Revisit Host Queue 是Crawl URL的一个主要的队列,每个队列应该代表一个主机(虽然这不是必须的)。 5.3 Adaptive Revisit Queue List 管理着Adaptive Revisit Host Queue 组成的列表。 5.4 BDB ...
另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...
另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...
另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...