我在项目中为了使用异步,就选择了多线程,刚开始是挺好的,但是运行了几天发现了问题,当访问量大的时候,会创建好多线程,每一个线程都在请求同一个服务,就会有线程处于阻塞状态,最后会导致系统资源耗尽,处于宕机状态。
这种问题该如何解决?或者是我想给每一个线程3秒钟的时间,3秒钟之后就让线程stop了。
求思路。
这种问题该如何解决?或者是我想给每一个线程3秒钟的时间,3秒钟之后就让线程stop了。
求思路。
调试欢乐多
....
....很容易用。跟数据库连接池道理一样。
ThreadPoolExecutor.AbortPolicy
ThreadPoolExecutor.CallerRunsPolicy
ThreadPoolExecutor.DiscardOldestPolicy
ThreadPoolExecutor.DiscardPolicy
就看你自己想怎么处理
我用的Timer设置了3秒钟,但是没有起到作用,线程还是继续执行,直到抛出了超时异常。
那可能是你线程在请求服务 。 阻塞在哪里,然后超时后 抛出异常。这个时候 即使你用 interrupted 是不起作用的。直接stop也不是很好。stop方法是不安全的