易截截图软件、单文件、免安装、纯绿色、仅160KB

java多线程发送邮件问题

比如说我数据库中有10万条email数据,我想写个多线程的程序把他们发送出去

取数据库记录时候如何取呢?如果一次性取出都放到List里,然后放到个一个多线程的程序里去发送,我觉得list的数据会太多。

如:
  ExecutorService exec = Exectors.newFixedThreadPool(10);
  List <Email> list = 数据库中所有的记录; 
  foreach( Email s : list) {
        exec.execute(new SendMail(s));  //发送邮件
  }

  class void SendMail extends Thread {
        private Email email;
        public SendMail(Email email) {
            this.email = email;
        }
        //是否要同步
        void run {
            发送邮件。。。。。
            TimeUnit.MILLISECONDS.sleep(20); //是否需要?
        }

        set....
        get.....
  }

  这样就要一次性取出所有的记录,
可以不可以开10个线程,每个线程各子取1万条记录进行发送呢,就像5个搬运工同时干活一样?如何实现呢??

肯定不能一次性全部取出来了,可以用多线程一边取一边发,中间定义一个缓冲区,这就是一个生产者消费者的问题了。

一边取,一


相关问答:

java日期处理 - Java / Java SE

当知道一个日期,如何把这个日期所在旬的前后两个日期取出
比如输入20090905,就输入20090901 20090910
输出20090901 20090910

取得天数后作一下判断再把这个方法用下void set(int field, int value)  
......

java程序连接SQlServer的问题 - Java / Java SE

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class QueryTest&n ......

JAVA编程求助 - Java / Java SE

工作需要 求大家帮忙写个程序
我是学C++的 不懂JAVA
编写一个Java应用程序,对于给定的一个字符串的集合,格式如:
  {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}
要求将其中交集不为空的 ......

java xml文题 - Java / Java SE

<?xml version="1.0" encoding="utf-8" ?> 
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&q ......

linux不能访问access - Java / Java EE

rt,我试了网上直连Acces数据库的方法,windows下没有问题,但是在linux下不行,谁能给点提示?谢谢
你怎么连的?

Acces数据库..
你怎么练的呢?

Java code:

static String DBDRIVER = "sun.jd ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号