मेरे पास एक बहुप्रचारित प्रोग्राम है जो सैकड़ों स्थानों पर कंसोल पर प्रिंट करता है। दुर्भाग्य से,रखो थ्रेड-सुरक्षित
Line 2
Line 1
Line 3
के बजाय मैं
Line2Line1
Line3
मिल रहा puts
धागा सुरक्षित बनाने की कोशिश कर रहा हूँ।
अजगर (जो मुझे नहीं लगता कि इस समस्या है, लेकिन यह किया था लगता है) में, मैं
old_print = print
print_mutex = threading.Lock()
def print(*args, **kwargs):
print_mutex.acquire()
try:
old_print(*args, **kwargs)
finally:
print_mutex.release()
मैं रूबी में इस कोशिश कर रहा हूँ
, करना चाहते हैं
old_puts = puts
puts_mutex = Mutex.new
def puts(*args)
puts_mutex.synchronize {
old_puts(*args)
}
लेकिन यह काम नहीं करता है: "अपरिभाषित विधि old_puts
"
मैं थ्रेड-सुरक्षित कैसे बना सकता हूं (यानी। आंशिक रेखा मुद्रित नहीं)?
युक्ति: जब आप 'old_puts = puts' करते हैं तो आप निश्चित रूप से' old_puts = puts() ' –