Android并发处理最佳做法

Android并发处理最佳做法

      几乎所有的Android开发人员都必须处理并发代码。要做到这一点很难、很苛刻,并且很容易出错。支持这项工作的工具知道合格线而已。

      可以使用一些最佳做法让代码更健壮,更不易受到奇怪且难以诊断的错误的影响。

 

      1、不可变对象是简单且线程安全的。虽然一些开发人员发现集群很讨厌,但用final修饰符明确每个可能的值从而使代码更容易管理。使用Builder模式是创建不可改变对象的这一种好办法。

      2、在单线程(不管是什么线程)上运行的代码很容易理解。如果需要多线程,就要尽量使它保持住。将它隐藏在框架中,这样大多数开发人员不需要意识到它。

      3、作为上一点的推论,尝试让Java类和源代码成为单线程的。太大而不适合放入一个编辑器屏幕的源文件,以及包含在不同线程上运行方法的源文件是肯定会发生意外的。

      4、如果必须让一个类的方法在多个线程上执行,那么就要注解或注释这些方法。代码本身并不会表明线程策略。经常听到的接口:“  代码就是注释 ”  并不适合多线程代码。

      5、非常仔细的检查多线程代码。小心谨慎往往能发现精心计划并良好之星的设计中有微小的疏忽。

      6、使用静态分析。将工具上的报告标准设置得尽可能最低,并且花时间了解他报告的每个异常。在可能时使用多个工具。注解!

      7、将尽可能多的代码移出Activity(和段)。Activity是页面的管理器。它不应该包含业务逻辑。

      8、从Android组件中获取尽可能多的代码。使用一种现在UI模式(MVVM,MVP)从Activity中获取显示逻辑。将你的Service保留为工厂,并通过手工或者使用IoC(控制反转,Inversion of Control)框架注入实现中。这样测试要容易得多。

 

      为长时间运行的任务创建一些简单清晰的执行策略,然后始终如一地使用他们。在可能的情况下,使用运行时断言以验证他们。让遵循这架构变得简单并且成为习惯。

      祝你好运。

 

本文摘自《Android并发 开发》第八章 8.4 结束语和最佳做法

实际开发中有很多并发的情况,书到用时方恨少,纸上得来终觉浅。希望对你有所帮助,正如文末,祝你好远!

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115022.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月1日 上午7:00
下一篇 2021年10月1日 上午7:00


相关推荐

  • Linux查看IP地址的几种方法

    Linux查看IP地址的几种方法获取 LinuxIP 地址的六种方法总结刘小白 DOER 本文总结六种查看 LinuxIP 地址的方法 方便以后的运维开发工作 在介绍前先学习一下三个命令行筛选的主要的指令 也是频繁使用到的命令 1 head head 命令可用于查看文件的开头部分的内容 有一个常用的参数 n 用于显示行数 默认为 10 运行 headhelp 查看说明信息 q 隐藏文件名 v 显示文件名 c 数目 显示的字节数 n 行数 显示的行数 2 g 行数 数目

    2026年3月17日
    2
  • CSS代码简洁之道: is 和 where

    CSS代码简洁之道: is 和 where创作不易拒绝白嫖点个赞呗关注专栏学透 CSS 带你走进 CSS 的深处 前言新人在入门 CSS 的时候 往往最困惑的就是两件事情 个人想法 1 CSS 是基于文档流的 有些时候编写的代码 并不符合自己的预期 2 复杂的选择器 什么场景用什么选择器 选择器太长 让新人很困恼 最近在公司的代码中发现了这样一段代码 home col cardai i1 home col cardai i2 home col cardai i3 home col card

    2026年3月16日
    2
  • docker部署jenkins安装使用教程_docker安装python

    docker部署jenkins安装使用教程_docker安装python前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月29日
    9
  • nginx外网访问内网站点配置

    nginx外网访问内网站点配置背景 站点是前后端分离 vue springboot 前端内网地址 192 168 1 10 81API 内网地址 192 168 1 12 8080 外网域名 abc ab com 外网 IP 10 114 X X 需求 通过域名可以访问站点且站点静态资源且可访问 API 请求数据方案一 前提 外网域名映射服务器外网 IP 1 nginx 配置域名监听且访问静态资源 2

    2026年3月26日
    2
  • Java实现大数运算

    Java实现大数运算一 大数运算介绍 nbsp 大数运算 顾名思义 就是很大的数值的数进行一系列的运算 它是指由于编程语言提供的基本数值数据类型表示的数值范围有限 不能满足较大规模的高精度数值计算 因此需要利用其他方法实现高精度数值的计算 于是产生了大数运算 二 Java 实现大数运算方法 nbsp nbsp nbsp nbsp 在 BigDecimal 用法详解这篇文章中给大家介绍了 Java 中的大数类 Bi

    2025年7月8日
    7
  • 不伤原图电脑在线去水印网站

    不伤原图电脑在线去水印网站地址 不伤原图在线去水印网站 https www shuiyinyun com 第一步 获取去水印软件第二步 增加文件在你下载完成后 在电脑桌面单击东西的图标 进入东西的运用 翻开东西 你可以看到东西的页面非常简约 并且功用也非常明了 不只可以去除图片的水印 还可以去除视频的水印呢 是不是感觉特别便利呀 然后挑选 增加文件 的操作 单击之后 挑选你想要的去除水印的图片导入 然后便可以进入下一步了 第三步 去除水印 保存文件导入了图片之后 应该怎样操作呢 咱们可以看到 在

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号