只显示主题贴
dennis_zane 写道已经用了FixedThreadPool,为什么还要用信号量去控制写线程数量?完全没必要了,如果写的速度这么快,完全可以预先启动一两个线程,这两个线程一直去写,没必要用线程池了:
public void run(){
while(!Thread.currentThread.isInterrupted()&&(message = queue.take())!=null)
{
getWriter().write(message);// 写入数据库
}
}
JDK5的threadpool自带了一个阻塞队列,会把所有的任务放入队列中。当大量数据拥入时,可 ...
- 进入论坛 Java 版
newdev 写道如果数据对实时性要求不高,现在的数据量实在不必要使用多线程来处理;
1、一线程:读取MQ队列的数据,累计到某队列
2、二线程:读取队列的数据(可以每千条一批次),将逻辑放入内存中处理,将结果放入队列
3、三线程:读取结果队列的数据(可以每千条一批次),更新入数据库
这样处理效率会很惊人的,一小时几十万条很轻松。
数据实时性要求还是比较高的,所以不能批量做,不然就不使用消息机制,而使用文件系统来做了。
- 进入论坛 Java 版
环境:AIX + IBM JDK5 从消息队列(MQ)获得的消息,写入本地数据库。每天处理数据量大约是一百万笔。
运行介绍:
1.有10个线程访问MQ,获得数据后放入本地阻塞队列(LinkedBlockingQueue,长度为10),程序大约是这个样子:
Executor pool = Executors.newFixedThreadPool(10);
for(int i=0; i<10; i++){
pool.execute(new Runnable(){
public void run(){
while(true){
Message mess ...
- 进入论坛 Java 版
用过才有发言权,我也经历过不使用框架-使用框架-使用什么样的框架的过程。不要想当然的说大量性能问题,维护成本几何上升。我们使用一个框架之前进行多方面的评估,并且设计多个场景进行测试,的确发现过可能存在的性能问题,提交给厂商后很快解决。不要把框架提供商当作傻子,他们实施的项目远比你实施的多,遇见过的问题也远比你遇见的多。
- 进入论坛 AJAX 版
不同意见。我们一个项目价值过千万,开发人员超过100人,前台全部使用某公司的商业框架。原因在于:1.开发效率高,组件功能足够强大2.bug少,js代码少,可持续维护性强3.性能还不错4.学习成本低,商业框架会提供足够的培训和服务,不需要每个程序员都是js高手缺点是:1.界面风格单一,但是对于一个商业业务系统来说无所谓。2.价格高。不过对于一个大项目来说价格不是最重要的。所以,我认为大项目使用一些框架反而是合算的
- 进入论坛 AJAX 版
quartz本身并没有发现内存泄漏,我使用quartz每隔几分钟调用存储过程,程序运行了一个月都没有内存泄漏。检查一下被调用的方法中是否有内存泄漏。
- 进入论坛 Java 版
theone 写道用Spring的唯一理由就是:Spring是一站式的解决方案。
使用EXT的理由也是类似的,我今天找了很多jquery/mootools plugin,可是每个plugin都不能包括我所需要的所有功能。找了一圈还是回到EXT。
一站式有什么不好~
- 进入论坛 Java 版







评论排行榜