• 2024-07-04python爬虫3-多进程多线程协程
    多进程和多线程frommultiprocessingimportProcessimportthreadingdefprocess_worker():foriinrange(200):print(f"Processworker{i}")defthread_worker():foriinrange(200):print(f"Threadworker{i}")if__
  • 2024-07-02day13 Goroutine 协程
    了解计算机原理进程:计算机资源分配单位线程:cpu处理单位协程:以特殊机制或者函数实现高并发,又称轻量级线程了解GoroutineGoGoroutine,go语言中的协程,实现并发。关键字go初始大小4k,随着程序执行自动增长和删除实现多线程并发执行packagemainimport"fmt"fu
  • 2024-07-0113、爬虫-协程-asyncio和异步操作-aiohttp
    概念:当程序sleep或者input、output等待的时候、cpu是处于堵塞状态的、cpu此时是不再为我们的代码服务的、所以协程就是当遇到了前面这种情况的时候可以选择性的切换到其他任务上 同步协程:asyncio当程序在睡眠的时候注意加上:awaitasyncio.sleep(2)"""多任务协程asyncio
  • 2024-07-0114、爬虫-异步协程爬取西游记小说-aiohttp-aiofiles
     注意:有关所有的IO操作都要加上:await挂起 """https://dushu.baidu.com/pc/detail?gid=4306063500#小说网站https://dushu.baidu.com/api/pc/getCatalog?data={%22book_id%22:%224306063500%22}#可以拿到每个章节的bookid、cid(每个章节的id)、这里%22相当于"号htt
  • 2024-06-24suspendCancellableCoroutine: 深入理解及使用技巧
    作为一名安卓开发工程师,我们在日常开发中经常会遇到需要挂起协程以等待某些异步操作完成的情况。Kotlin的协程为我们提供了丰富的挂起函数,其中一个非常重要且强大的函数就suspendCancellableCoroutine。本文将深入探讨suspendCancellableCoroutine的使用及其内部机制,帮助
  • 2024-06-23[Golang基础]Goroutine
    协程(CoRoutine)是一种轻量级的用户态线程。简单来说,线程(thread)的调度是由操作系统负责,线程的睡眠、等待、唤醒的时机是由操作系统控制,开发者无法决定。使用协程,开发者可以自行控制程序切换的时机,可以在一个函数执行到一半的时候中断执行,让出CPU,在需要的时候再回到中断点继续执行。
  • 2024-06-22Unity 面试题(后续或许会更新)
    C#相关请简述拆箱和装箱装箱操作:值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程。1.在堆中开辟内存空间。2.将值类型的数据复制到堆中。3.返回堆中新分配对象的地址。拆箱操作:object类型显示转换为值类型或从接口类型到实现该接口值类型的过程。1.判断
  • 2024-06-21Golang并发
    Sync.MutexMutex结构typeMutexstruct{ stateint32 semauint32}Sync.Mutex由两个字段构成,state用来表示当前互斥锁处于的状态,sema用于控制锁状态的信号量互斥锁state(32bit)主要记录了如下四种状态:waiter_num(29bit):记录了当前等待这个锁的goroutine数量starving(
  • 2024-06-20golang 爬虫修炼02 ---协程、互斥锁、读写锁、waitgroup
    协程程序:为了完成特定任务,使用某种语言编写的一组指令的集合,是一段静态的代码进程:是程序的一次执行过程。正在运行的一个程序,进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域。进程是动态的,有产生、存在、消亡的过程线程:进程可进一步细分为线程,是一个程序
  • 2024-06-16多线程处理
    基础知识阻塞与非阻塞阻塞状态指程序未得到所需计算资源时被挂起的状态。程序在等待某操作的过程中,自身不被阻塞,可以继续运行干别的事情,则称该程序在该操作上是非阻塞的。同步与异步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致。例如在购物系统中更
  • 2024-06-15Go-知识并发控制mutex
    Go-知识并发控制mutex1.介绍2.数据结构2.1Mutex结构体2.2Mutex方法3.加锁解锁过程3.1简单加锁3.2加锁被阻塞3.3简单解锁3.4解锁并唤醒协程4.自旋过程4.1什么是自旋4.2自旋条件4.3自旋的优势4.4自旋的问题5.Mutex模式5.1Normal模式5.2Starving模
  • 2024-06-14go 语言调试工具:dlv 简单使用
     1.    Delve介绍      Delve(通常简写为dlv)是一个为Go语言设计的调试器,它提供了深入代码内部的洞察力和控制力,帮助开发者更好地理解代码的行为,高效地定位和修复问题。      使用dlv进行调试,需要关闭编译器的内联、优化,不可用于生成环境:        
  • 2024-06-13爬虫 | 多线程、多进程、协程
    进程和线程"""进程中至少有一条线程,线程和进程的开启非常类似,这里就展示线程"""fromthreadingimportThreadfrommultiprocessingimportProcess#第一种开启的方法就是直接defdeffunc(name):foriinrange(100):print(name,i)if__name__=='__ma
  • 2024-06-11Python中的协程
    1.引言在现代软件开发中,处理高并发任务已成为常态。Python,作为一种广泛使用的高级编程语言,提供了强大的并发模型,其中协程是关键组件。本文将深入探讨Python中的协程,从基础概念到高级应用,以及它们在实际开发中的使用。2.协程的基本概念在深入探讨Python协程之前,我们需要
  • 2024-06-11测试开发面经分享,面试七天速成 DAY 1
    1.get、post、put、delete的区别a.get请求:i.用于从服务器获取资源。请求参数附加在URL的查询字符串中。ii.对服务器的请求是幂等的,即多次相同的GET请求应该返回相同的结果。iii.可以被缓存,可以被收藏为书签。iv.对于敏感数据不太适用,因为数据会暴露在URL中。
  • 2024-06-08C++20协程接口说明
    等待体的接口说明: boolawait_ready()表达了等待体对象是否准备就绪,返回false表示没有准备好,返回true表示准备好了,这个返回值决定了等待体的执行流程。 boolawait_suspend(Coro::coroutine_handle<Task::promise_type>)当await_ready返回fasle时,进入此函数执行,如果await_r
  • 2024-06-07Unity 协程
    IEnumeratorStart(){Debug.Log("协程开始");yieldreturnnewWaitForSeconds(2f);Debug.Log("等待了2秒后继续执行");yieldreturnnewWaitForSeconds(1f);Debug.Log("又等待了1秒后继续执行");}
  • 2024-06-07go cond
      cond:packagemainimport("fmt""sync""time")funcmain(){varmusync.Mutexcond:=sync.NewCond(&mu)varreadyboolgofunc(){time.Sleep(time.Second)//模拟一些工作
  • 2024-06-06Android网络请求:协程+Flow+Retrofit+OkHttp
    在Android开发中,网络请求是一个很常见的任务。随着Kotlin协程和Flow的流行,我们有了新的工具来优雅地处理网络请求。结合Retrofit和OkHttp,我们可以构建一个强大的、易于理解和维护的网络请求框架。一、Kotlin协程与FlowKotlin协程是Kotlin提供的一种轻量级线程管理方式。它
  • 2024-06-04【Go专家编程——定时器】
    定时器定时器在Go语言开发中被广泛使用,准确掌握其用法和实现原理至关重要Go语言提供了两种定时器一次性定时器Timer:定时器只计时一次,计时结束便停止运行周期性定时器Ticker:定时器周期性地进行计时,除非主动停止,否则将永久运行。1一次性定时器Timer1.1简介Timer是一种
  • 2024-06-02信号量(Semaphore),事件Event(了解),队列补充,进程池和线程池(重点),协程理论,Greenlet,Gevent模块,asynico模块
    Ⅰ信号量(Semaphore)【一】什么是信号量信号量Semahpore(同线程一样)互斥锁:允许在同一时刻只能有一个线程或进程同资源进行修改信号量:允许指定数量的进程或线程对资源进行修改【二】例子比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去
  • 2024-06-02Go语言之goroutine + channel 计算素数
    计算素数通道协程之间的关系并发的俩种思想:第一个通过共享内存,需要锁来保证并发安全。第二个通过通信来。go语言通过channel.channel是协程安全的。通道intchan来传递要计算的数通道primechan来传递结果是素数通道exitchan来保证计算的协程都完毕协程inttocha
  • 2024-06-01MyPRC 框架设计与实现
    MyPRC框架设计与实现框架概述框架具体实现MyRPC框架核心类关系简图服务启动流程Service.hService.cpp信号处理相关代码:signalhandler.hpp事件分发流程MainReactorSubReactorreactor.cppeventdispatch.hppcoroutinelocal.hpptimer.hpp服务器端请求处理流程事件监听状态
  • 2024-06-01golang GMP机制
    GMP是Golang底层实现的一种调度协程的方案,目的是提高并发处理且降低切换成本。GMP分别是底层实现中的三个数据结构。g代表goroutine,指被调度的协程对象。m代表线程,它是操作系统级别的线程,用来执行程序中的协程。p代表processer,是CPU的抽象。默认情况下,go程序会为每个CPU创
  • 2024-05-30【Android图片框架】都用Kotlin协程了,快来试试Coil~
    回顾一下Glide        Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decodepipeline),以及自动的资源池技术。Glide支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以