[Java] 进程/线程/协程

进程、线程和协程是三个在多任务处理中常听到的概念,三者各有区别又相互联系。

进程

进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。 
进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志。 
进程的局限是创建、撤销和切换的开销比较大。

线程

线程是在进程之后发展出来的概念。 线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。一个进程可以包含多个线程。 
线程的优点是减小了程序并发执行时的开销,提高了操作系统的并发性能,缺点是线程没有自己的系统资源,只拥有在运行时必不可少的资源,但同一进程的各线程可以共享进程所拥有的系统资源,如果把进程比作一个车间,那么线程就好比是车间里面的工人。不过对于某些独占性资源存在锁机制,处理不当可能会产生“死锁”。

协程

协程是一种用户态的轻量级线程,又称微线程,英文名Coroutine,协程的调度完全由用户控制。人们通常将协程和子程序(函数)比较着理解。 
子程序调用总是一个入口,一次返回,一旦退出即完成了子程序的执行。 
协程的起始处是第一个入口点,在协程里,返回点之后是接下来的入口点。在python中,协程可以通过yield来调用其它协程。通过yield方式转移执行权的协程之间不是调用者与被调用者的关系,而是彼此对称、平等的,通过相互协作共同完成任务。其运行的大致流程如下:

第一步,协程A开始执行。
第二步,协程A执行到一半,进入暂停,通过yield命令将执行权转移到协程B。
第三步,(一段时间后)协程B交还执行权。
第四步,协程A恢复执行。
  • 1
  • 2
  • 3
  • 4

协程的特点在于是一个线程执行,与多线程相比,其优势体现在:

  1. 协程的执行效率非常高。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。
  2. 协程不需要多线程的锁机制。在协程中控制共享资源不加锁,只需要判断状态就好了。

Tips:利用多核CPU最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android进程是指在Android系统中运行的应用程序的实例。每个进程包含多个线程,线程是进程内的执行单元。进程线程的管理对于程序的性能和内存优化非常重要。 为了进行程序内存优化,可以考虑以下几个方面: 1. 降低内存占用:可以通过合理设计和优化程序的数据结构和算法,减少不必要的内存占用。避免无限制地加载大量数据,及时释放不再使用的内存资源。 2. 避免内存泄漏:内存泄漏是指程序中分配的内存没有被及时释放,导致内存资源无法再被其他程序使用。在Android开发中,避免内存泄漏的一种常见方法是使用弱引用来持有对象,及时释放不再需要的对象。 3. 优化进程间通信:Android中的进程间通信(IPC)是指不同进程之间进行数据交换和通信的机制。为了减少IPC的开销,可以考虑使用轻量级的数据传输方式,如通过Intent传递数据,避免使用大量的跨进程通信。 4. 使用合适的线程管理:Android提供了多种线程管理方式,如使用AsyncTask、Handler等,可以根据具体的需求选择合适的线程管理方式来提高程序的性能和响应速度。 5. 使用内存管理工具:Android提供了一些内存管理工具,如Profiler和Memory Analyzer等,可以帮助开发者分析和优化程序的内存使用情况,及时发现和解决内存问题。 综上所述,通过优化程序的内存占用、避免内存泄漏、优化进程间通信、合理使用线程管理和使用内存管理工具,可以帮助提高Android程序的性能和内存优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [android进程线程](https://blog.csdn.net/wangbuji/article/details/124755430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值