Java 通过并行处理使不同线程同时发送邮件的程序
我有下面的程序,它使用java mail api发送邮件,这是我开发的一个简单的程序,我想通过使用executorframework来修改并行执行,我希望5个不同的线程独立地触发我的程序,但是这5个不同的线程应该同时触发 假设有五个不同的线程t1、t2、t3、t4和t5,那么它们都应该独立地命中我的函数,这是main(@)现在正在调用rite,但同时 下面是我的java代码Java 通过并行处理使不同线程同时发送邮件的程序,java,multithreading,executorservice,Java,Multithreading,Executorservice,我有下面的程序,它使用java mail api发送邮件,这是我开发的一个简单的程序,我想通过使用executorframework来修改并行执行,我希望5个不同的线程独立地触发我的程序,但是这5个不同的线程应该同时触发 假设有五个不同的线程t1、t2、t3、t4和t5,那么它们都应该独立地命中我的函数,这是main(@)现在正在调用rite,但同时 下面是我的java代码 public class SSendEmail { public static void main(String
public class SSendEmail {
public static void main(String [] args) throws Exception, IOException, Exception{
String smtpHost = "xxx";
String mailSmtpPort = "000";
String mailTo[] = {"sart@wer.com" };
String mailCc[] = {"sart@wer.com" };
xxsendmail(mailTo, mailCc, "sendername",
"testsubject.", "testsubject..", smtpHost , mailSmtpPort);
}
我想您应该使用一个
ScheduledExecutorService
并这样调用它
ScheduledExecutorService exec = Executors.newScheduledThreadPool(amount);
for (int i = 0; i < amount; i++) {
exec.schedule(yourMailSendingRunnable, delay, TimeUnit.MILLISECONDS);
}
ScheduledExecutorService exec=Executors.newScheduledThreadPool(amount);
对于(int i=0;i
您应该替换
数量
、邮件发送可运行
和延迟
,以满足您的需求。只要您的唯一要求是5个线程同时工作,您就可以完成以下操作:
public class SSendEmail implements Runnable {
public static void main(String [] args) throws Exception, IOException, Exception{
for(int i=0;i<5;i++) {
new Thread(new SSendMail()).start();
}
}
public void run() {
String smtpHost = "xxx";
String mailSmtpPort = "000";
String mailTo[] = {"sart@wer.com" };
String mailCc[] = {"sart@wer.com" };
xxsendmail(mailTo, mailCc, "sendername",
"testsubject.", "testsubject..", smtpHost , mailSmtpPort);
}
}
公共类SSendEmail实现可运行{
公共静态void main(字符串[]args)引发异常、IOException、异常{
对于(int i=0;i@Cooki3Tube..Thanks为了快速响应,请您将我的代码转换成它,并告诉我我需要5个不同的线程,所有线程同时调用方法xxsendmail。谢谢您的同意,但我也希望5个独立的线程同时调用我的方法xxsendmail时间本身,请告知上述代码将确保5个独立线程正在调用我的名为xxsendmail的方法simentously@sss:请尝试Peter的代码并亲自查看。我希望您的电子邮件提供商不会阻止您发送电子邮件。@Gilbert我们已经设置了测试邮箱,所以不必担心。我唯一担心的是l线程应该是独立的,而且它们应该同时调用方法。这就是全部。请请建议上面的代码将确保..
,在多线程中,很少有事情是确定的(或确定性的)。当您执行线程#启动()
时,JVM将尽最大努力完成任务。