java - Java中如何为特定方法实现Thread?

标签 java multithreading

我有以下方法,我想用线程调用它,因为我想在后台独立执行这个方法。那么,谁能告诉我如何做到这一点?

我在 EmailNotification 类中有以下函数

public class EmailNotification {
public void SendEmailNotificationForCampaign(String[] pCamp_ids,
            List<String> pReciepientAddresses, campaign pCampObj,
            ThemeDisplay pThemeDisplay, OPERATION pOperation,
            List<String> pSmptpObjList, String pLogoPath) {

        GenerateCampaignEmailMessage(pCamp_ids, pReciepientAddresses, pCampObj,
                pThemeDisplay, pOperation, pSmptpObjList, pLogoPath);
    }
}

以下是 RestaurantPortlet 类中的代码,其中调用上述方法

EmailNotification emailnotifyObj = new EmailNotification();
                            emailnotifyObj.SendEmailNotificationForAdvertise(sAdvIds,
                                    RecipientAdress, updatedAdv, pthemeDisplay,
                                    OPERATION.AD_DELETE, ReadSmtpDataForMailNotification(), pthemeDisplay.getPortalURL()+"/eMenuAdvertise-portlet/img/eMenuLogo.png");

那么我如何使用线程实现 SendEmailNotificationForCampaign 方法。?有人可以让我指导吗?我是线程概念的新手。

最佳答案

最简单也可能是最好的想法是为所有待处理的电子邮件创建一个静态队列。所有生产者线程都会将邮件添加到队列中,另一个线程将处理并发送这些电子邮件。

看看producer/consumer wiki 中的问题,它会给你一个很好的想法如何去做。

关于java - Java中如何为特定方法实现Thread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395163/

相关文章:

java - 如何访问扩展类中的方法?

java - 如何检查是否选择了 ANY

java - 我如何修改此代码使其时间复杂度为 o(log n) 或 o(n) 而不是 o(n^2)

java - Android:如何使用 Java 获取序列号,如关于设备、状态中所示

Android:SQLiteCursor/SimpleCursorAdapter 在后台

c - ARM v6 IRQ 上下文切换

java - 我的代码抛出 ArrayIndexOutOfBoundsException

.net - 线程的身份

java - 写时复制和比较然后交换之间的区别?

c++ - C++线程和 promise