我目前正在考虑如何用Java设计一个多线程系统,该系统需要进行大量的网络处理和数据库存储。该程序将首先启动三个基本线程。沿着这些基本线程,我不想从主程序而是从其中两个线程启动其他线程。一个线程是否有可能启动另一个导致某种层次结构的线程,例如:
> Parent ->t0 thread1 -> t1 tread1.1
> ->t0 thread2
> ->t0 thread3 -> t2 thread3.1
t0= inital time
t1,t2 = time at a point in the running thread
t1 != t2
如果不能,有人可以提供具有参考意义的理论解决方案吗?
是的,您可以根据需要启动任意数量的线程,但这可能不是最好的方法。最好使用非阻塞API,以便您可以开始执行一些外部调用,并且调用线程可以立即开始执行其他操作,而无需等待套接字/数据库调用返回。然后,当套接字/数据库调用返回时,将触发回调以完成该处理。
非阻塞I / O可以提供更高的CPU利用率,因为您只需要触发调用和注册回调,而不必试图平衡“合适的”并发线程数,这些线程无论如何基本上都处于睡眠状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句