title: Python multiprocessing manager class object thread/process safe
body: <p>I have the following class that is shared between multiple consumers (using producer/consumer methodology).  My question involves the methods called on this class.  Do I need to implement locks or is the manager class thread safe?</p>
  
  <pre><code>import multiprocessing as mp
  from multiprocessing.manager import BaseManager
  
  class SampleClass(object):
  
      def __init__(self):
          self._count = 0
  
      # Does locking need to be implemented here?
      def increment(self):
          self._count += 1
  
  BaseManager.register('SampleClass', SampleClass)
  manager = BaseManager()
  manager.start()
  
  instance = manager.SampleClass()
  
  jobs = []
  for i in range(0, 5):
      p = mp.Process(target=some_func, args=(instance,))
      jobs.append(p)
      p.start()
  
  for p in jobs:
      p.join()
  </code></pre>