New submission from Tianshu Gao <tgtianshu...@gmail.com>:
This is very similar to issue35715. But this is happen for thread. After the func in thread finished, the memory is still hold and accumulate. import asyncio import time import concurrent import threading loop = asyncio.get_event_loop() def prepare_a_giant_list(): m = [] for i in range(1000*1000): m.append("There's a fat fox jump over a sheep" + str(i)) th_num = threading.active_count() print("Thread number is {}".format(th_num)) return m @asyncio.coroutine def main(): global loop global counter async_executor = concurrent.futures.ThreadPoolExecutor(max_workers=20) loop.run_in_executor(async_executor, prepare_a_giant_list) time.sleep(15) loop.run_in_executor(async_executor, prepare_a_giant_list) time.sleep(15) loop.run_in_executor(async_executor, prepare_a_giant_list) time.sleep(15) loop.run_in_executor(async_executor, prepare_a_giant_list) time.sleep(15) if __name__ == "__main__": loop.run_until_complete(main()) loop.close() ---------- components: asyncio messages: 350108 nosy: Tianshu Gao, asvetlov, yselivanov priority: normal severity: normal status: open title: Thread pool return ref hold memory type: resource usage versions: Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37909> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com