多线程是可以并行处理数据的。 比如我开了4个线程,每个线程申请一个内存,我把它写入到某个指针(地址空间)去。这时候cpu多核就展现出来,可以同时写入数据。只是大部分情况下一般程序开发者用不了那么精度的计算,所以成就了。那么我们说说理论上只是并发处理数据,而不是并行处理数据。并发的意思一个线程下,单核内,它一个个执行任务,遇到阻塞情况下会去执行未被阻塞的代码。当代码不阻塞了它又回来继
转载 2024-08-16 08:19:34
8阅读
前言 前段时间写了一篇对的一些理解,里面提到了不管是还是callback,本质上其实提供的是一种异步无阻塞的编程模式;并且介绍了java中对异步无阻赛这种编程模式的支持,主要提到了Future和CompletableFuture;之后有同学在下面留言提到了RxJava,刚好最近在看微服务设计这本书,里面提到了响应式扩展(Reactive extensions,Rx),而RxJava是R
转载 2023-06-09 16:48:35
115阅读
 quasar纤文档:FiberExecutorScheduler (Quasar 0.8.0) 在该文档中我发现了FiberExecutorScheduler类,这个类将是本文阐述quasar池的正确打开方式!【全是泪】分析经历:我一直对Quasar及其轻质纤维替代Threads感到好奇。那么quasar本身是否有自己的纤池呢?于是看是翻阅文档,找吧挨个看吧!线程池T
转载 2023-09-09 17:16:22
127阅读
这是系列笔记,目录提要:cppcoro 源码级使用教程系列: 概述 | C++20 coroutine 教程 | io_uring 异步IO 网络框架 系列笔记_我说我谁呢 --CSDN博客很遗憾的是,虽然本身学习服务器应该把 socket 编程、缓存处理、linux 系统调用信号机制等这些为重点,但是对于要用 coroutine 来做的话,其实是优点舍近求远的,因为你必须理解异步和 corout
想快速了解与网络调用的原来么,那么请赶紧关闭本页,因为下面都是在扯淡。这几天是端午假期,第一天大算照着网上一大堆基于ucontext来写的文章自己也写一个简单的实现。于是第一天我就开始动手了,非常轻松愉快,毕竟是抄么。但是很多文章写到怎么用ucontext做切换就戛然而止了,很显然在我们日常用的比较多的网络应用中没有人会去做手工的切换,这些的切换调度其实都被封装在socke
进程、线程和协的区别进程:充分利用多CPU线程:充分利用多核(达到真正的多任务并行):充分利用单核(充分挖掘不断提高性能的单核CPU的潜力。类比事件驱动和异步程序)。既可以利用异步优势,又可以避免反复系统调用,还有进程切换造成的开销。存在的意义: 对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。,则只使用一个线程,在一个线程中规定某个
参考链接示例来自bilibili Kotlin语言深入解析 张龙老师的视频本节先介绍的相关概念 概念可能枯燥,我们先要了解中的相关概念 然后结合代码理解这些概念 加深印象的定义通过将复杂性放入库中来简化异步编程。程序的逻辑可以在中顺序地表达,而底层库为我们解决异步性库可以将用户代码地相关部分包装为回调、订阅相关事件(listener)、在不同地线程(甚至不同的机器)上调度,
转载 2024-04-08 22:54:29
73阅读
文章目录Kotlin原理特点调度程序线程 Kotlin原理是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。Kotlin 使用堆栈帧管理要运行哪个函数以及所有局部变量。挂起时,系统会复制并保存当前的堆栈帧以供稍后使用。恢复时,会将堆栈帧从其保存位置复制回来,然后函数再次开始运行。即使代码可能看起来像普通的顺序阻塞请求,也能确保网络请求避免阻塞主线
转载 2024-02-28 11:31:28
29阅读
一、概念  :是单线程下的并发,又称微线程,纤。英文名Coroutine。是一种用户态的轻量级线程,即是由用户程序自己控制调度的。 大概就是这个样子  的运行需要在一个 EventLoop 中进行,由它来控制异步任务的注册、执行、取消等。其大致原理是:把传入的所有异步对象(准确的说是可等待对象,如 Coroutine,Task&nbsp
1.多线程、多进程、多    进程:一个运行的程序,进程是系统调度和分配的最小单位,拥有自己独立的空间内存,进程之间不共享资源。    线程:调度执行的最小单位,依赖于进程,一个进程至少有一个线程,并且同一个进程内的线程之间共享资源,大大提升了程序运行速度,切换由系统调度。    :一种用户态的轻量级
rxjava源码中的线程知识rx的最精简的总结就是:异步这里说一下以下的五个类1.Future 2.ConcurrentLinkedQueue 3.volatile关键字 4.AtomicReference 5.ScheduledExecutorService一.Future类    1.Future的唯一实现类是FutureTask。   &nb
原文作者:Dávid Karnok 引言Kotlin 的是否让 RxJava 和 响应式编程光辉不再 了呢?答案取决于你询问的对象。狂信徒和营销者们会毫不犹豫地是是是。如果真是这样的话,开发者们迟早会将 Rx 代码用重写一遍,抑或从一开始就用来写。 因为 目前还是实验性的,所以目前的诸如性能瓶颈之类的不足,都将逐渐解决。因此,相对于原生性能,本文的重点更在于易用性方面。方案设计假
转载 2023-07-25 21:14:55
129阅读
Kotlin的使用是什么?首先kotlin是kotlin的扩展库(kotlinx.coroutines)。线程在Android开发中一般用来做一些复杂耗时的操作,避免耗时操作阻塞主线程而出现ANR的情况,例如IO操作就需要在新的线程中去完成。但是呢,如果一个页面中使用的线程太多,线程间的切换是很消耗内存资源的,我们都知道线程是由系统去控制调度的,所以线程使用起来比较难于控制。这个时候k
文章目录前言一. gradle配置二. 创建的三种方式2.1 runBlocking2.2 GlobalScope2.3 CoroutineScope三. 总结 前言:英文coroutine,可以认为是轻量级的线程,是一套基于Java线程池的封装。相对于线程要处理各种同步问题,则可以将其简化,以同步的方式写异步代码。一. gradle配置对于Android项目,最新版本的kotl
目录进程简介使用场景线程简介使用场景简介使用场景进程与线程之间的关系 背景:竞争上岗已工作半个月,老大给的第一个任务是让我理解线程、进程、的概念和使用场景,不忘初心,来波分享进程简介一个运行的程序或代码就是一个进程,一个没有运行的代码叫程序。进程是系统进行资源分配的最小单位,进程拥有自己的内存空间,进程之间相互独立,所以进程间数据不共享,开销大,同一个进程中的所有线程共享资源使用场景多进
转载 2023-12-31 21:39:22
50阅读
本文我将尝试对RxJava最核心的 线程调度 的原理进行分析。
# 用取代RxJava ## 介绍 在Android开发中,RxJava是非常常用的异步编程库,但是随着Kotlin语言的发展和Android Jetpack的引入,逐渐成为替代RxJava的一个选择。提供了一种更简洁、更易于理解和维护的异步编程方式。本文将指导你如何将RxJava代码转换为代码,并为你提供了一些实用的示例。 ## RxJava和协的基本概念 在开始之前,让我
原创 2024-01-15 09:45:18
204阅读
按调用栈分类 由于需要支持挂起、恢复,因此对于挂起点的状态保存就显得极其关键。类似地,线程会因为 CPU 调度权的切换而被中断,它的中断状态会保存在调用栈当中,因而的实现也按照是否开辟相应的调用栈存在以下两种类型: 有栈 Stackful Coroutine:每一个都会有自己的调用栈,有点儿类似于线程的调用栈,这种情况下的实现其
# 如何替换RxJava:解决实际问题 在现代Android开发和其他基于JVM的应用程序中,异步编程是一项至关重要的技能。过去几年,RxJava凭借其响应式编程风格成为异步编程的一种流行选择。然而,随着Kotlin引入的特性,许多开发者开始考虑是否可以用替代RxJava。本文将探讨如何使用替换RxJava来解决一个实际问题,并提供具体的示例。 ## 什么是RxJava? R
原创 10月前
83阅读
Ajax         说道ajax到底什么是ajax? ajax是一种创建交互网页应用的一门技术。        ajax的应用场景有:(地图)实时更新,表单验证等等....        ajax的优缺点:         &nbsp
  • 1
  • 2
  • 3
  • 4
  • 5