当前位置: 首页 > news >正文

进程线程

从Android3.0开始,系统要求网络访问必须在子线程中进行,否则会抛出异常,这么做是为了避免主线程被阻塞而导致ANR,那么网络访问的操作就必须要放到线程中去执行。

进程

进程是操作系统结构的基础,是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位。进程可以看做就是程序承载着不同线程的运行。Android系统中一个应用程序就是一个进程可以通过AS的Logcat窗口查看:

image.png

线程

image.png

、 上面图中的1894就是主线程的线程号,-后面的这个进程中的除主线程的其他线程,如果为1894-1894那么就是主线程。

线程是操作系统调度的最小单元,也叫作轻量级进程。在一个进程中可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等特性,并且能够访问共享的内存变量。

线程的优势

使用多线程可以减少程序的等待时间,如果某个操作是耗时操作比如网络请求操作或陷入长时间的等待,这个时候APP不会响应用户的其他操作比如手势触摸滑动等,使用多线程可以使得将耗时操作放入到线程中去运行而不用担心阻塞主线程,在实际工作中可以通过Callable去启动线程,通过返回值Future去获取返回值。

线程间的切换操作损耗相比于进程来说更加轻量级

现在都是多核多CPU的处理器,一个核默认是一个线程当然除了intel的双线程技术,这使得我们可以压榨CPU的处理性能和计算速度,提高CPU的利用率使得我们的APP更加流畅

但是多线程使用不当也是会有很大的问题,下文进行分析。

原文链接:进程&线程 - 掘金 (juejin.cn)

http://www.lryc.cn/news/225785.html

相关文章:

  • 【ubuntu 快速熟悉】
  • 全局异常处理器(黑马程序员)
  • 虹科示波器 | 汽车免拆检测 | 2017款路虎发现车行驶中发动机抖动且加速无力
  • 数据结构与算法C语言版学习笔记(6)-树、二叉树、赫夫曼树
  • Leetcode刷题详解——电话号码的字母组合
  • dream_ready
  • 离线视频ocr识别
  • 双十一流量卡选购指南:不要只看月租,性价比高才是硬道理!
  • 时序预测 | MATLAB实现WOA-CNN-GRU-Attention时间序列预测(SE注意力机制)
  • 华为防火墙二层透明模式下双机热备负载分担配置(两端为路由器)
  • “基于RflySim平台飞控底层算法开发”系列专题培训 (第三期)
  • Leetcode刷题详解——全排列 II
  • 音频——解析 PCM 数据
  • win10 下 ros + Qt 工程CMakeLists.txt
  • Scala中编写多线程爬虫程序并做可视化处理
  • 使用 huggingface_hub 镜像下载 大模型
  • 路径加密(替换空格),剑指offer,力扣
  • HarmonyOS开发:UI开展前的阶段总结
  • Linux安装Libreoffice
  • 如何将系统盘MBR转GPT?无损教程分享!
  • 基于element-plus定义表单配置化
  • LeetCode算法题解(贪心)|LeetCode122. 买卖股票的最佳时机 II、LeetCoed55. 跳跃游戏、LeetCode45. 跳跃游戏 II
  • 计蒜客详解合集(2)期
  • 华为防火墙vrrp+hrp双机热备主备备份(两端为交换机)
  • Angular 由一个bug说起之一:List / Grid的性能问题
  • 第12章 PyTorch图像分割代码框架-3:推理与部署
  • MYSQL---基础篇
  • 【启扬方案】启扬安卓屏一体机在医疗自助服务终端上的应用解决方案
  • 收藏!7个国内「小众」的程序员社区
  • LeetCode(4)删除有序数组中的重复项 II【数组/字符串】【中等】