线程并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的 多线程之间共享全局变量在一个进程内的所有线程共享全局变量,很方便在多个线程间共享数据缺点就是,线程是对全局变量随意更改可能造成多线程之间对全局变量的混乱(即线程非安
转载
2024-05-29 08:50:23
55阅读
# Android 协程网络封装

## 引言
在Android开发中,网络请求是一个常见的需求。而在网络请求中,处理异步操作和线程切换是非常繁琐的。为了解决这个问题,Google在Kotlin语言中引入了协程(Coroutines)的概念。协程是一种轻量级的线程,可以简化异步编程的复杂性。本文将介绍如何使用协程来封装网络请求。
## 协程介绍
原创
2023-11-18 14:40:12
140阅读
这篇是许久之前初学协程之时整理的笔记,今天偶然翻到便整理成md发出来。现在的我真的越来越难总结出这么多又臭又长的东西了。协程定义官方描述:协程通过将复杂性放入库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底层库会为我们解决其异步性。该库可以将用户代码的相关部分包装为回调、订阅相关事件、在不同线程(甚至不同机器)上调度执行,而代码则保持如同顺序执行一样简单。协程与线程的区别协程是编译器级别的
作用域与上下文协程作用域本质是一个接口,既然是一个接口,那么它就可以被某个类去实现(implement),实现它的那个类,也就具备了一些能力。class MyClass: CoroutineScope {
// MyClass就具备了CoroutineScope的一些能力
}那么它具备了哪些能力呢?当然是启动协程的能力和停止协程的能力。除了runBlocking有一些特殊外,launch和
转载
2024-10-12 10:43:54
15阅读
本系列文章Android 上的协程(第一部分):了解背景Android 上的协程(第二部分):入门Android上的协程 (第三部分): 实际应用Android 上的协程(第二部分):入门背景回顾在第一部分中,我们探讨了协程擅长解决的问题。回顾一下,协程是解决两个常见编程问题的好方法:长时间运行的任务是花费太长时间阻塞主线程的任务。Main-safety允许您确保可以从主线程调用任何挂起函数。 为
转载
2023-07-05 12:11:54
268阅读
文章目录golang常用库之-ants包 | golang协程池(goroutine池)背景什么是ants? 使用demo官方demo golang常用库之-ants包 | golang协程池(goroutine池)背景使用go关键字就可以方便快捷的创建一个goroutine,受限于服务器硬件内存大小,如果不对goroutine数量进行限制,会出现Out of Memory错误。通过协程池限制g
转载
2024-01-03 09:55:43
76阅读
之前介绍了修改sdk后的代码大体架构,其实修改代码倒不是什么麻烦的事,无非实现一种新功能,下面说说真正让人抓狂的事——封装和集成sdk。sdk打包首先要打包,如果是纯代码的sdk导出成jar包就行了;像我这样sdk里还包含图片资源要打包aar。编译成功用gradle直接打包成release包: 模块名称为downloadsdk,生成的aar就在download/build/output/aar路
转载
2023-07-01 17:36:33
74阅读
最近业余时间在写一个小游戏。在为客户端封装socket层时头脑一热,有了一些新的想法, 在这里记录一下。 客户端使用的是Unity3d引擎。而在Unity3d中,基础的socket库只提供两种模式,一种是阻塞模式,一种是异步callback模式。 一般都需要基于这两种模式下进一步封装,才可以更方便的使用。 咨询了几个做客户端的并搜了一下,发现大家的惯用手法都是开一个线程去使用socket阻
文章目录目的例子原始形式改造回调优化:并行处理事件流 目的协程用起来很方便,可以将异步的代码完全平铺开,写成和同步一样的代码形式。但很多时候,很多方法是以回调的形式给出的,所以处理起来依旧不够优雅。 本篇文章的目的就是解决这个问题。例子原始形式以OkHttp为例,OkHttp就是以回调的形式给出网络请求结果。通常我们的写法如下:/**
* 原始写法
*/
privat
转载
2024-04-23 11:20:30
117阅读
官网介绍:https://developer.android.com/kotlin/coroutines一、协程的概念协程(Coroutines)是一种并发设计模式,可以在 Android 平台上使用它来简化异步执行的代码。 协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,协程有助于管理长时间运行的任务.二、协程的特点协程是在 Android
转载
2023-09-11 21:44:05
170阅读
Android系统中本身是有下载机制的,比如浏览器使用的DownloadManager。可遗憾的是,DownloadManager只提供给浏览器使用,一般的应用程序没法调用它。 另外,如果下载调用频繁的话,使用DownloadManager其实是很没有效率的做法。为了解决这些问题,我想我们最好的办法就是自己实现下载,本文就是基于HTTP协议的下载的一些简单介绍。
一、HTTP协议简介
HTTP
转载
2023-07-14 11:00:36
56阅读
一:协程是什么?协程基于线程,是轻量级的线程 coroutine = cooperation+routine 难度在哪里? 1,java中不曾出现,新概念 2,概念不清晰 3,Kotlin基础不扎实 4,多线程基础太薄弱二:在android中协程用来解决什么问题?1,处理耗时任务,这种任务常常会阻塞主线程 2,保证主线程安全,确保安全的从主线程调用任何suspend函数(挂起函数) 异步任务已经过
转载
2023-12-20 17:35:55
130阅读
前言大家好,我是小益!在上章内容中,我们简单了解了什么是协程以及协程的基本使用,主要提到了协程的launch与withContext用法。但是launch与withContext并不适合用于需要返回结果的并发场景,在并发场景中,我们一般会使用协程的async/await。推荐文章将率先在公众号「Code满满」上发布,欢迎大家关注!一、async与awiatasync单单从字面意思理解就知道其与异步
转载
2023-07-28 00:03:15
257阅读
# Python 协程封装任务指南
在现代的 Python 开发中,协程是一种高效的并发编程方式,能够让你轻松处理异步任务。对于刚入行的小白来说,理解如何封装任务并使用协程是一个重要的技能。本文将带你一步步实现这一过程。
## 流程概述
下面是实现 Python 协程封装任务的步骤流程表:
| 步骤 | 描述 |
|------|-
Ajax 说道ajax到底什么是ajax? ajax是一种创建交互网页应用的一门技术。 ajax的应用场景有:(地图)实时更新,表单验证等等.... ajax的优缺点:  
1、单线程模拟爬虫如下代码所示。我们模拟python最常见的爬虫。伪代码的功能就是计算时间。看爬取一个网站所耗费的时间有多少。可以看到4个网站每个分别耗费1,2,3,4。总共时长10秒。这种模式就是最常见的单线程。这种方式最大的缺点也比较明显。效率底下。浪费时间。如果要爬取大量的网站。按这种模式。你还还轮到的网页。估计人家都已经更新了。。。import time
def crawl_page(u
转载
2024-07-18 11:33:12
26阅读
如何理解协程协程是一种不同于进程和线程的存在,其本质是一种函数,同一线程中的多个协程是串行执行的,但为了理解仍然需要三者一起对比。进程、线程、协程三者的上下文切换对比:进程线程协程切换者操作系统操作系统用户(编程者/应用程序)切换时机根据操作系统自己的切换策略,用户不感知根据操作系统自己的切换策略,用户不感知用户自己(的程序)决定切换内容页全局目录&内核栈&硬件上下文内核栈&
转载
2023-12-21 07:13:05
98阅读
协程解决了什么?协程Coroutines作为Kotlin的一大特性,被Android官方所强推,主要用来简化Android中异步代码的编写,将开发者从异步代码的泥潭中解救出来。在Android开发中,协程Coroutines所解决的两个最大的问题是:耗时任务:阻塞主线程主线程安全:任何suspend方法都可以在主线程中被调用我们来详细看看这两大问题,协程Coroutines都是如何去解决的。耗时任
转载
2023-08-01 21:02:56
100阅读
目录
前言
Kotlin协程,现在已经成为了面试甚至是工作中一个非常火的东西。本人在刚开始了解Kotlin协程的时候,断断续续看了网上不少文章,用长篇大论把Kotlin协程描述的非常玄乎,但是看完后还是依然云里雾里,所以决定来写一篇关于协程的文章,希望能够帮助大家能够更快的上手Kotlin协程JetPack里的组件上图就是JetPack中包含的组件列表,每个组件都是相对独立的,可以被单独使用和构建
转载
2024-02-01 15:12:12
50阅读
废话留在结尾了。以下括号内有的是细分问题,有的是关键点。(注:我简历上有写源码okhttp、Retrofit、Glide、Eventbus、Arouter。)一、作业帮:1面: 1、Https握手过程(CA验证、哪些是对称加密、哪些非对称加密,ssl包含哪些内容);
转载
2023-09-19 17:27:48
205阅读