मेरे पास दो धागे हैं। एक वर्ग की अद्यतन विधि को आमंत्रित करता है जो एक चर को संशोधित करता है। दूसरा एक वर्ग की अद्यतन विधि को आमंत्रित करता है जो चर को पढ़ता है। केवल एक धागा लिखता है और एक (या अधिक) धागे उस चर को पढ़ते हैं। समेकन के मामले में मुझे क्या करने की ज़रूरत है, क्योंकि मैं बहु-थ्रेडिंग के लिए नया हूं?जावा दो धागे के बीच एक चर साझा करें
public class A
{
public int variable; // Does this need to be volatile?
// Not only int, could also be boolean or float.
public void update()
{
// Called by one thread constantly
++variable;
// Or some other algorithm
variable = complexAlgorithm();
}
}
public class B
{
public A a;
public void update()
{
// Called by another thread constantly
// I don't care about missing an update
int v = a.variable;
// Do algorithm with v...
}
}
धन्यवाद,
नीचे दिए गए कई उत्तरों का मानना है कि आप पूर्णांक कुशलता कर रहे हैं जिसे 'परमाणु इंटेगर' वर्ग द्वारा नियंत्रित किया जा सकता है। कुछ और जटिल के लिए, 'सिंक्रनाइज़' ब्लॉक या 'java.util.conccurent.locks.Lock' – justkt