import time
import threading
from concurrent.futures import ThreadPoolExecutor, as_completed
import _thread
import demo_requests
import asyncio
def task(task_id):
for run_count in range(5):
print(f"id: {task_id} run times: {run_count}")
time.sleep(3)
def handle_result(future):
print(future)
pass
async def handle():
print('handle')
pass
def start_multi_thread(threadPoolNum, count):
pool = ThreadPoolExecutor(max_workers=threadPoolNum)
futures = []
for i in range(count):
future = pool.submit(task, i)
futures.append(future)
print(len(futures))
for future in as_completed(futures):
print("for each futures start")
future.add_done_callback(handle_result)
print("for each futures end")
pool.shutdown()
if __name__ == '__main__':
# start_multi_thread(5, 10)
# print('done')
t = _thread.start_new_thread(asyncio.run, [handle()])
print(t)