java - 避免从非同步线程调用类

标签 java thread-safety

<分区>

我有一个类具有一个被其他类使用的功能。我觉得我的函数是从非同步线程调用的。在我的函数中添加繁忙标志以防止从非同步线程调用是不是一个很好的解决方案。它会工作吗:

public class Hndl
{
boolean isBusy=false;

    public  boolean doJob()
    {
        if(!isBusy)
        {
        isBusy=true;
        ...
            return true;
        isBusy=false;
        }
        else
        {
            return false;
        }
    }


}

最佳答案

除非你确实需要在你的类的其他方法中使用那个busy标志,你应该简单地将你的方法定义为synchronized以避免它被并行执行并且使其成为线程安全:

public synchronized boolean doJob() { ... }

关于java - 避免从非同步线程调用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465452/

相关文章:

c# - 将 Array 与多个读取器线程 + 写入器一起使用

java - 如何将项目添加到同一父类(super class)型的通用列表中?

java - 匹配可能单词的正则表达式

Java同步方法锁定对象还是方法?

delphi - 具有 'thread-safe'读/写操作的Delphi数据类型列表?

c# - 从多个线程通过静态类访问数据库

c# - .NET 中的后续写入能否由运行时或处理器重新排序?

javax.tools.JavaCompiler "arguments"arg

java - JPA Query 仅选择特定列而不使用 Criteria Query?

java - 自动更新新插入的房间实体中的主键