I am using the threading libary and want to have one thread that will call several threads. The background to this program is that I have a camera which captures Image and makes them available in a class on a TCP-SocketServer.
Thus I need one thread that runs the camera capturing and a second thread that runs the TCPServer, but within this Thread there are several Threads for each incoming connection.
This last thread means I need a thread that can create threads on its own. Unfortunately this did not work.
I managed to break down the immense code into a small snippet which represents the problem:
import threading
def adder(x,res,i):
        res[i] = res[i] + x*i;
def creator(a,threads,results):
    results = []
    for i in range(0,a):
        results.append(0)
        threads.append(threading.Thread(target=adder,args=(a,results,i)))
        threads[i].start()
    for i in range(0,len(threads)):
        threads[i].join()
    return results;
threads = [];
results = [];
mainThread = threading.Thread(target=creator,args=([5,threads,results]))
mainThread.start()
mainThread.join()
for i in range(0,len(results)):
    print results[i]
    print threads[i]
In the function creator which is called as a thread there should be several threads created with the funciton adder.
However the results are empty, why is that so?
This is the same problem that occurs in my larger program.