python的多线程执行获取该函数的返回值该怎么写呢?

不理解python中多线程实际运用应该是什么样的语法
from time import sleep
def A(list):
    res_list = []
    for i in list:
        sleep(1)
        res_list.append(i*2)
    return res_list
 
def B(list):
    final = []
    for i in list:
        sleep(1)
        final.append(i*2)
    return final
 
if __name__ == '__main__':
    list = [1,2,3]
    res_list = A(list)
    final = B(res_list)
    print(final)

假设这样的一段代码,B函数需要A函数的返回值作为参数,能否A函数使用多线程执行完后拿到返回值,再由B函数开启多线程继续执行,不在意列表中元素的顺序。这样该怎么写呢?

你可以用多线程,每个线程都是执行A 再执行B
这样比较合理

感觉可能是这样

from multiprocessing import Queue
from threading import Thread
from time import sleep, time

def A_Thread(i, q):
    sleep(1)
    q.put(i*2)

def B_Thread(i, q):
    sleep(1)
    q.put(i*2)

if __name__ == '__main__':
    start = time()
    lst = [1, 2, 3, 4]     # 初始输入
    q = Queue()             # 容器
    thread_lst_a = [Thread(target = A_Thread, args = (i, q)) for i in lst]
    for i in thread_lst_a: i.start()
    for i in thread_lst_a: i.join()
    lst_tmp = [q.get() for _ in range(len(lst))]
    thread_lst_b = [Thread(target = B_Thread, args = (i, q)) for i in lst_tmp]
    for i in thread_lst_b: i.start()
    for i in thread_lst_b: i.join()
    res_lst = [q.get() for _ in range(len(lst_tmp))]
    print(res_lst, time() - start)  # [4, 12, 16, 8] 2.069