采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
因为使用数据库非常频繁,网络是使用Rxjava的线程池,现在就想知道数据库操作使用多少个核心线程数合适,基本上每一条Item都会使用数据库查询。
其他不看,这里是重点:
真的建议64个吗,在一些低端机,比如1024M的运行内存,480*800的手机上也64个?
用户很多都是低端机,所以我都是按照CPU核心计算的。
同学,这个针对cpu密集型的可以,但是io的你可以多设置。你说的1024m和线程的没多大关联,线程创建消耗的更多是虚拟内存,1024是物理内存,而且中间还有个堆内存限制。这几个概念别混了。
那我的任务基本是操作文件和数据库还有一些数据量比较大的for循环,而且查询数据库是及其频繁的,因为一个页面可以看见的条目大概12个,并且是分页,每个条目都进行了查询。网络用的Okhttp和Rxjava和Retrofit,Rxjava和Okhttp都有独立的线程池我也不进行控制,其他第三方的我也不进行控制。这样你建议多少个
如何删除此问题,我新开一个。
我不会关问题的,就这值得我关问题?
我搞错了
经过测试在1024M运行内存的手机上,核心线程设置为60直接进应用就崩。
同学你好,你看下崩的因为什么
一进应用创建那么多线程,分配内存都不够
实实在在的崩溃了,你可以自己尝试在1024M运行内存的手机上,使用60个核心线程的固定线程尝试。
这就是崩溃的原因
实在是不知道这么控制
在运行内存为1024m的手机上,你一下子就创建64个线程,怕不是还没有使用应用功能就崩溃了。
同学你刚开始怎么不说你是 1024 的手机呢?我们的app 一开启到启动完成就是 200 多个线程,信不信由你。 你知道单个设备线程数限制吗?64 算个毛线啊!
不仅是我们的 App,我经历过的 所有App 国内的、海外的,包括市面所有的中大型 App。
哈哈哈这个问答区现在再看,有点儿看相声的感觉了,第一看到老师的“毛线”,用“算球”会不会更合适
64这么大开什么玩笑呀!我都是2*n+1大于14就等于14
一般来说,网络请求和数据库操作都是 IO 密集型任务,这样的你可以设置为 64。不过还是需要根据项目中对这个线程池的使用情况综合决定。
64?能发一下你的线程池代码吗?
299就问几个问题,这都不回复吗?
同学,说话讲道理讲良心,我有不回复????????
登录后可查看更多问答,登录/注册
由表及里学到国内Top团队对性能问题的体系化解决方案
1.4k 38
1.2k 12
1.4k 9
1.2k 9
1.0k 9