code: def test_async_actor_have_bounded_num_of_threads(shutdown_only):
      ray.init()
  
      @ray.remote
      class A:
          async def get_my_threads(self):
              return my_threads()
  
          async def add(self, i, j):
              return i + j
  
      a = A.options(max_concurrency=2).remote()
  
      prev_threads = ray.get(a.get_my_threads.remote())
  
      assert ray.get(fibonacci.remote(a, 1)) == 1
      now_threads = ray.get(a.get_my_threads.remote())
      assert_threads_are_bounded(prev_threads, now_threads)
  
      # Creates a lot of workers sending to actor
      assert ray.get(fibonacci.remote(a, 10)) == 89
      now_threads = ray.get(a.get_my_threads.remote())
      assert_threads_are_bounded(prev_threads, now_threads)
  
file_path: ray/python/ray/tests/test_actor_bounded_threads.py
imports: import sys
  import os
  import ray
  import logging
  from typing import Dict
  from collections import Counter
  import pytest
label_desc: Use image node_id 5 for calling a global function with example usage: test_async_actor_have_bounded_num_of_threads(shutdown_only) and returns: my_threads, unknown