5
回答
java 多线程并发问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

需求: 现有一个类 solrServer 这个类有个方法非静态方法 handleRequest(String str) 可以接收多个线程的不同request ,通过一系列复杂的计算,返回一个结果。

但是在多线程调用这个方法时 每次都需要new一个solrServer对象。这个solrServer对象的构造很耗时间,有没有什么方法能像线程池,或者jdbc连接池那样去某个地方拿事先已经准备好的solrServer对象


<无标签>
举报
黑man巴
发帖于4年前 5回/614阅
共有5个答案 最后回答: 4年前

楼主还没能理解何谓多线程呐。

每个请求都要new solrServer对象,这么以来,每个请求线程都隔离开来了,确实不存在资源同步问题。这样的场景不叫多线程并发。

真正的多线程并发场景就是要解决这样的资源同步问题。

建议楼主一是考虑上面说的单例模式,然后做好资源同步,这个是避免不了的。这部分是相当有挑战的。

二是在程序启动时异步构造你需要的资源,需要时从“池“里取,当然了,”池“大小是有限制的,你依然避免不了资源同步,所以,好好研磨你的代码才是上策。

--- 共有 1 条评论 ---
黑man巴谢谢 4年前 回复
单例
--- 共有 1 条评论 ---
黑man巴这个solrServer类里的一些成员变量需要 考虑多线程同步问题, 如果用单例 会出问题的把? 再补充一点背景,我用的框架是SpringMvc,不知道它是不是有做些什么多线程并发处理 4年前 回复
单例模式是你最佳的选择
--- 共有 1 条评论 ---
黑man巴这个solrServer类里的一些成员变量需要 考虑多线程同步问题, 如果用单例 会出问题的把? 再补充一点背景,我用的框架是SpringMvc,不知道它是不是有做些什么多线程并发处理 4年前 回复
顶部