我被给了一个单线程应用程序,并要求它使多线程。有很多单例实例使用。@prototype范围如何帮助多线程
我知道,当多个线程之间共享单例实例时,该实例的所有变量将在多个线程之间共享。
例如,有一个count变量,它是一个单例实例变量。我的想法是每个线程都应该增加'count'。每个线程只会增加一次。所以计数器应该是1.如果我增加共享对象的这个变量,所有的线程都会得到这个值。因此,当第二个线程执行此操作时,值不会是1,但是2.对于第n个线程递增的值,它看到的值将是n,而不是1.
为了防止出现这种情况,我使用原型该班的范围。现在我将为每个线程获取一个新对象,并且每个线程的计数器将保持为1。
这是我以为我会使用原型范围。这有道理吗?我举了一个计数器的例子,在共享实例中有许多不同类型的变量。 我的原型使用是否合理?
这不仅仅是一个变量'计数器',但有很多这样的变量。 – hars
如果这些变量不需要在不同线程之间共享,它可以是局部变量(在方法中包含生命周期的变量) –
@hars如果这回答了您的问题,请接受它,这将有助于SO用户 –