java - 如何从线程分配变量

标签 java multithreading concurrency runnable

我正在尝试创建一个要返回的变量,该变量指示线程是否成功完成其工作 - 但是,它要求该变量是最终变量,这意味着它不能被重新分配。

为了促进这样的事情需要什么

public static void sendFeedbackEmail(final String user, final FeedbackRating rating,    final String feedbackText, final EmailAddress emailToSendTo) {
    if (rating != null && !StringUtilities.stringEmptyOrNull(user)) {
        boolean result = false;
        Thread emailSender = new Thread(new Runnable() {
            @Override
            public void run() {
                feedbackText = (StringUtilities.stringEmptyOrNull(feedbackText)) ? "N/A" : feedbackText;
                String message = FEEDBACK_MESSAGE.replace("?", rating.getValue())   + user + " Text: " + feedbackText;
                String emailAddress = (emailToSendTo == null) ? USER_FEEDBACK_EMAIL_ADDRESS : emailToSendTo.getValue();
                try {
                    sendVimbaMessage(user, emailAddress, message);
                } catch (MessagingException e) {
                    result = false;
                }
                result = false;
            }
        });
        emailSender.setDaemon(true);
        emailSender.start();
    }
    return false;
}

谢谢

最佳答案

使用 Runnable 执行以下操作:

public class YourClass implements Runnable{

    private boolean yourVariable;

    public YourClass(boolean v){
       yourVariable = v
    }

    public void run(){
       .....
    }

    ........

}

创建线程时,假设您有一个不是最终变量:

boolean nonFinalVariable = true;
Thread t = new Thread(new YourClass(nonFinalVariable));

关于java - 如何从线程分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062434/

相关文章:

Java多线程执行器InvokeAll问题

swift - dispatch_async 与 dispatch_sync 在获取数据中的对比。 swift

java - 在java中编写线程安全的阻塞有界缓冲区结构时如何处理索引溢出?

java - 如何在循环中创建 JPanel 并将它们插入 JPanel 数组 [] []

java - Android sqlite创建数据库错误

java - 一次性为所有 JSP 页面启用 JSTL 支持(不是基于 "per-every-single-page")

c# - 打破 parallel.foreach?

java - 解析日期时间字符串与各种浏览器的时区

java,为什么 thread.wait() 在我的代码中不起作用

c# - 使用相同代码实现时无法模仿 ConcurrentStack 的性能