如何对通用函数进行线程安全?

时间:2019-05-27 05:46:59

标签: java multithreading

我是多线程概念的新手。

我有下面的函数,该函数接受数据以执行操作并返回输出。从不同类(假设为5)和相应线程的对象中访问该功能。

public synchronized static List<Integer> PerformOperation(List<Integer>, int param1, String param2)
{
    //performing operations .....
    //Returning new data
}

在上面的函数中,我使用了 synchronized 方法,但是我可以使用Lock机制(如有必要)。但是我不想在多线程应用程序中阻止该功能。

我提出了两种可能的解决方案:

  1. 将上述功能在所有5个不同类中保留为非静态功能。现在,每个对象都有其自己的功能副本。

问题:我不想在所有5个不同的类中重复此功能代码,以防止同步阻塞。

  1. 将函数保留为非静态,并使用新对象获取数据。喜欢
Class MyUtilClass
{
   public List<Integer> PerformOperation(List<Integer>, int param1, String param2)
    {
       //performing operations .....
       //Returning new data
    }
}

不同类别的用法:

List<Integer> l_returnData = new MyUtilClass().PerformOperation(dummyDataList, intParam, strParam);

问题:

  1. 有什么方法可以解决#1问题。
  2. #2是多线程解决方案还是好的做法?

0 个答案:

没有答案