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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python之psutil库的使用

    Python之psutil库的使用psutil(pythonsystemandprocessutilities)是一个跨平台的第三方库,能够轻松实现获取系统运行的进程和系统利用率(包扩CPU、内存、磁盘、网络等)信息。它主要用于系统监控、分析、限制系统资源和进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill…

    2022年6月5日
    76
  • 一阶惯性环节pid参数整定_一阶惯性环节转折频率

    一阶惯性环节pid参数整定_一阶惯性环节转折频率//—————————————————————————#ifndefUnit1H#defineUnit1H//—————————————————————————#include#in

    2022年10月4日
    4
  • 教你用JAVA写个小游戏[通俗易懂]

    教你用JAVA写个小游戏[通俗易懂]上周上课的时候老师让用Java写个小程序,我本想写一个经典的飞机大战游戏来着,可以后来突发奇想就写成了这个一、整体思路继承窗体类,复写窗体刷新 添加按键监听 游戏结束界面 王思聪类和热狗类移动轨迹计算 判断碰撞音乐播放 不断刷新窗体处理细节二、编码1.图片首先你要找到图片,可以百度一张,然后用ps切开,再找一张背景图片就搞定了你还需要一个加载图片的…

    2022年7月14日
    24
  • MySQL轻快入门2021.3.18(字符集与乱码)[通俗易懂]

    MySQL轻快入门2021.3.18(字符集与乱码)[通俗易懂]输入,查询,展示的字符集编码一致就不会出现乱码。连接器好像对我们没有影响(仅限于gdk,utf-8),连接器字符编码太小转换的时候会造成数据的丢失。校对集就是它们的排序规则

    2022年7月11日
    18
  • QStringList的indexOf匹配[通俗易懂]

    QStringList的indexOf匹配[通俗易懂]QStringList中存放了一系列的字符串,想

    2022年5月29日
    163
  • 用户使用报告_2020年抖音用户画像报告[附下载] | 行业数据报告研读[通俗易懂]

    用户使用报告_2020年抖音用户画像报告[附下载] | 行业数据报告研读[通俗易懂]▼ 更多专业报告,请关注我们 ▼▼有趣回顾:▼【小时光面馆】专一先生和善变小姐油烟情书甲壳虫的最后一英里关注公众号,后台发送关键词“2020抖音用户画像”即可获取完整版PDF报告!报告摘要本篇报告针对的是18岁以上使用抖音行为的人群,对此进行规模大小、具体属性分析、兴趣爱好的数据整理,大部分数据都采自2020年1月。抖音用户规模数据截止至2020年1月,抖音日…

    2022年6月12日
    34

发表回复

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

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