在使用java多线程时遇到了问题,困惑
我在项目中为了使用异步,就选择了多线程,刚开始是挺好的,但是运行了几天发现了问题,当访问量大的时候,会创建好多线程,每一个线程都在请求同一个服务,就会有线程处于阻塞状态,最后会导致系统资源耗尽,处于宕机状态。
这种问题该如何解决?或者是我想给每一个线程3秒钟的时间,3秒钟之后就让线程stop了。
求思路。
------解决方案--------------------用线程池吧。
ExecutorService pool = Executors.Fixed.....(线程数);
....
....很容易用。
跟数据库连接池道理一样。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------既然你都说了不想让它等,那就设置个计时器,到了时间没有反应,就杀死线程喽
------解决方案--------------------[Quote=引用:]
我用的Timer设置了3秒钟,但是没有起到作用,线程还是继续执行,直到抛出了超时异常。
那可能是你线程在请求服务 。 阻塞在哪里,然后超时后 抛出异常。
这个时候 即使你用 interrupted 是不起作用的。直接stop也不是很好。stop方法是不安全的