code: def test_dumps_loads_return_with_multi_thread(self):
      class A(object):
          def __init__(self, a):
              self.a = a
  
      def run(i):
          a = A(i)
          serialize_bytes = dumps_return(a)
          deserialize_result = loads_return(serialize_bytes)
          assert deserialize_result.a == i
  
      threads = []
      for i in range(50):
          t = threading.Thread(target=run, args=(i,))
          t.start()
          threads.append(t)
  
      for t in threads:
          t.join()
  
file_path: PARL/parl/remote/tests/communication_test.py
imports: import numpy
  import time
  import threading
  import unittest
  from parl.remote.communication import dumps_return, loads_return, dumps_argument, loads_argument
label_desc: Use image node_id 5 for calling the TestCommunication obj's underlying member method code with example usage: obj.test_dumps_loads_return_with_multi_thread() without return types