java - 线程会给应用程序增加很多开销吗?

标签 java android multithreading

随着我的应用程序的成熟,我发现自己发现线程的用途越来越多。到现在为止,我必须有大约 25 个线程,所有线程都在做重要的事情并在 symphony 中一起工作。

但是我注意到我的应用程序驻留了大约 15.5MB。与浏览器(+/-35MB)相比,我感觉很安全,但我确实注意到我的应用程序的常驻大小不断增加。

问题是,添加一个线程涉及多少开销?

我还想知道 synchronized 关键字是否会随着每个新线程的出现而遇到越来越多的延迟?

谢谢!

最佳答案

从某种角度来看,一个新启动的浏览器应用程序大约有 20 个线程在运行。拥有 25 个线程并非完全不合理。这实际上取决于您使用它们做什么。

app_1     17309 67    182452 27944 ffffffff 00000000 S com.android.browser
app_1     17310 17309 182452 27944 ffffffff 00000000 S HeapWorker
app_1     17311 17309 182452 27944 ffffffff 00000000 S Signal Catcher
app_1     17312 17309 182452 27944 ffffffff 00000000 S JDWP
app_1     17313 17309 182452 27944 ffffffff 00000000 S Compiler
app_1     17314 17309 182452 27944 ffffffff 00000000 S Binder Thread #
app_1     17315 17309 182452 27944 ffffffff 00000000 S Binder Thread #
app_1     17317 17309 182452 27944 ffffffff 00000000 S CookieSyncManag
app_1     17319 17309 182452 27944 ffffffff 00000000 S WebViewCoreThre
app_1     17321 17309 182452 27944 ffffffff 00000000 S AsyncTask #1
app_1     17322 17309 182452 27944 ffffffff 00000000 S AsyncTask #2
app_1     17323 17309 182452 27944 ffffffff 00000000 S WebViewCoreThre
app_1     17324 17309 182452 27944 ffffffff 00000000 S http0
app_1     17325 17309 182452 27944 ffffffff 00000000 S http1
app_1     17326 17309 182452 27944 ffffffff 00000000 S http2
app_1     17327 17309 182452 27944 ffffffff 00000000 S http3
app_1     17328 17309 182452 27944 ffffffff 00000000 S WebViewWorkerTh
app_1     17329 17309 182452 27944 ffffffff 00000000 S AsyncTask #3
app_1     17330 17309 182452 27944 ffffffff 00000000 S AsyncTask #4
app_1     17332 17309 182452 27944 ffffffff 00000000 S AsyncTask #5

关于java - 线程会给应用程序增加很多开销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3398988/

相关文章:

android - 未找到 Google Play 服务资源 - 推送通知

java - Executors.newSingleThreadScheduledExecutor 的用法

multithreading - 是否 M :N threading model really utilizes CPU cores?

java - 检查字母 x 是否在两个引号之间

java - 如何在某些情况下忽略@SQLDelete注释

用于使用蓝牙将文件从 Android 发送到其他设备的 Android 应用程序

multithreading - `vkCommandPool` 可以从主线程分配并移动到其他线程吗?

java - apache mina 自定义编辑器配置器在 spring 4 中抛出异常

java - 从 Java 执行外部程序

android - react-native:文件 android/java_pid14920.hprof 为 311.59 MB;这超出了 GitHub 的文件大小限制