当前位置: 首页 > 知识库问答 >
问题:

使用“粘附UPnP库”的线程太多

梁宪
2023-03-14

我正在使用Fabric/Crashlytics跟踪我的应用程序崩溃,我有以下崩溃:

致命的例外:java。lang.OutOfMemoryError:在java上创建线程失败。lang.VMThread。在java上创建(VMThread.java)。朗。丝线。从java开始(Thread.java:1050)。util。同时发生的线程池执行器。java上的addWorker(ThreadPoolExecutor.java:913)。util。同时发生的线程池执行器。java上的processWorkerExit(ThreadPoolExecutor.java:962)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1098)。util。同时发生的线程池执行器$Worker。在java上运行(ThreadPoolExecutor.java:573)。朗。丝线。运行(Thread.java:856)

我看到1230个线程,其中1170个来自GRANG UPnP库,如下所示:

爪哇的Clang-1761。lang.Object。在java上等待(Object.java)。lang.Object。在org上等待(Object.java:364)。日食码头。客户HttpExchange。waitForDone(HttpExchange.java:170)位于org。第四行。附着于运输impl。码头。StreamClientImpl$2。在org上调用(StreamClientImpl.java:115)。第四行。附着于运输impl。码头。StreamClientImpl$2。在java上调用(StreamClientImpl.java:108)。util。同时发生的未来任务。在java上运行(FutureTask.java:234)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1080)。util。同时发生的线程池执行器$Worker。在java上运行(ThreadPoolExecutor.java:573)。朗。丝线。运行(Thread.java:856)

你知道为什么这个图书馆使用了太多的线程吗?我想我已经解决了这个问题,因为我没有更多与线程创建相关的崩溃。

谢谢

共有1个答案

鲍鸿波
2023-03-14

初始化UpnpServiceImpl时,可以创建配置以设置线程池大小。示例代码为:

    protected UpnpServiceConfiguration createConfiguration() {
    return new AndroidUpnpServiceConfiguration() {
        protected ExecutorService createDefaultExecutorService() {
            return new ThreadPoolExecutor(10,
                    60,
                    60L,
                    TimeUnit.SECONDS,
                    new SynchronousQueue<Runnable>(),
                    new ClingThreadFactory(),
                    new ThreadPoolExecutor.DiscardPolicy());
        }

        @Override
        public int getRegistryMaintenanceIntervalMillis() {
            return 5000;
        }
    };
}
 类似资料:
  • 问题内容: 是否有用于通过UPnP实现服务发现和发布的库? (我正在尝试找到JmDNS的一些替代方案,这些协议虽然可以很好地达到我们的目的,但作为一个库,它非常不稳定,死锁的趋势令人无法接受。) 问题答案: http://4thline.org/projects/cling/ 适用于Java和Android开发人员的开源DLNA / UPnP堆栈,库和工具

  • UPnP-Inspector 是一个 UPnP 设备的分析和调试工具,基于 DLNA/UPnP 框架。

  • 我创建了一个多线程步骤,最大线程限制为10; 在处理了200万条记录文件后,我可以在日志文件中看到创建的线程太多,即使我将限制设置为10个线程。你能告诉我为什么吗?非常感谢。 2019-07-02T17:02:298968129857信息[batch-thread35348]com。db。wmdl。价格档案。工作一批听众。PriceFileReaderListener([])-PriceFileR

  • Platinum UPnP SDK 是一个跨平台的C++库,利用该库,你可以很容易就构建出DLNA/UPnP控制点(DLNA/UPnP Control Point)和DLNA/UPnP设备(DLNA/UPnP Device),其中包括有UPnP AV Media Server, Media Render & Control Point的例子。它可以在Windows, Mac OSX, Linux,

  • 我正在为移动机器开发一个服务器,该服务器使用Visual Studio Express 2013实现套接字服务器以接收其连接。 它使用将连接分配给一个。它为每个创建的新套接字启动一个新的,并有一个while周期来接收、解析和写入数据到套接字。它使用属性获取数据计数,并使用

  • 最近在接受采访时,我得到了这个问题。 Q: 您编写过多线程应用程序吗? 甲:是的 问:介意解释更多吗? 答:我使用了< code>Tasks(任务并行库)来执行一些任务,比如< code >加载UI时等待来自互联网的一些信息。这提高了我的应用程序的可用性。 问:但是,仅仅您使用了就意味着您编写了应用程序? 我:(不知道该说什么) 那么,究竟什么是多线程应用程序?它与使用不同吗?