有3个线程:主线程(main()运行的线程),Thread A
和Thread B
。有一个线程启动另一个线程,然后死
操作顺序:
- 程序启动(主())
- 主线程中实例化并开始
Thread A
。 Thread A
X秒后实例化Thread B
。Thread B
已启动。Thread B
X秒后实例化Thread A
。Thread A
开始。
如果调用Thread B
是可运行的Thread A
执行的最后一条语句,将Thread A
Thread B
终止后,被实例化并开始了吗?或者将Thread B
嵌套在Thread A
中,因此创建无限数量的嵌套线程?什么是默认行为,我将如何完成NOT创建无限数量的线程(我希望每个以前的线程在孩子生存时结束)。
A Thread.join()
会导致线程等待,直到子线程死亡,是否正确?
如果这一般只是不好的做法,任何人都可以推荐替代品,基本上可以完成同样的任务吗?我需要一个函数,几秒钟后,调用另一个函数,然后与第一个函数同时运行。第一个函数在完成一些命令后会死掉。第二个函数应该在几秒钟后调用第一个函数的新实例。此循环应继续,直到主线程中止(或直到程序退出)。
如果你不想保持instanciating和销毁一堆线程,你可以随时查看工作线程池。这个想法是,线程呆在周围,给他们工作单位,然后等待更多的工作。好处是你不会浪费时间在不断的杀死和产生线程的开销上。 – zero298