Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过并行处理使不同线程同时发送邮件的程序_Java_Multithreading_Executorservice - Fatal编程技术网

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

我有下面的程序,它使用java mail api发送邮件,这是我开发的一个简单的程序,我想通过使用executorframework来修改并行执行,我希望5个不同的线程独立地触发我的程序,但是这5个不同的线程应该同时触发

假设有五个不同的线程t1、t2、t3、t4和t5,那么它们都应该独立地命中我的函数,这是main(@)现在正在调用rite,但同时

下面是我的java代码

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将尽最大努力完成任务。