code: def test_generate_model_id_with_multi_thread(self):
      q = Queue()
      t1 = threading.Thread(target=self._gen_model_id, args=(q,))
      t2 = threading.Thread(target=self._gen_model_id, args=(q,))
      t1.start()
      t2.start()
  
      t1.join()
      t2.join()
  
      id1 = q.get()
      id2 = q.get()
  
      self.assertNotEqual(id1, id2)
  
file_path: PARL/parl/core/fluid/tests/model_helper_test_fluid.py
imports: import threading
  import unittest
  from parl.core.fluid.model_helper import global_model_helper
  from six.moves.queue import Queue
label_desc: Use image node_id 3 for calling the GlobalModelHelperTest obj's underlying member method code with example usage: obj.test_generate_model_id_with_multi_thread() without return types