• 2024-11-16解析 React Scheduler 原理,Solid 竟也在使用!
    对于ReactScheduler,它通过将任务切片并异步执行,避免了阻塞浏览器的主线程。很多人其实都看到过类似的文章了,甚至说去手写调度器,都写的很不错,所以本文将从一个新的角度探讨ReactScheduler,揭示它是如何利用几个简单的API实现这一壮举的。ReactScheduler解析首先,让
  • 2024-08-17Scheduler工作流程
    Scheduler的目的React实现Scheuler的目的是想要实现时间切片。时间切片是指:将长任务拆分成多段,每次执行一小段的任务的操作。Scheduler的实现React利用MessageChannel创建出一个port实例,port实例有两个属性port1和port2。如果在Scheduler当中调用port2.postM
  • 2024-07-01独立线程按照推入的任务时间顺序执行任务
    一、模型背景有时,代码需要交个其他线程处理,也不关心执行的进度,但是关心执行的顺序。二、代码实现publicclassThreadTaskChanel:IDisposable{//创建任务队列privateConcurrentQueue<Action>_taskQueue=newConcurrentQueue<Action>();
  • 2024-04-10【SpringBoot + Tomcat】【二】请求到达后端服务进程后的处理过程-连接的处理细节
    1 前言上节的后半部分,由于忙项目的事情去了,收尾的有点潦草,我们这节再继续。上节我们的思路是先简单回顾了下,SpringBoot启动和创建Tomcat的时机,然后我们还主要看了下连接器Connector的创建已经启动过程。连接器本身很重要,因为它就像一个港口或者一个枢纽,连接着客户端和服
  • 2024-02-25线程池的原理及实现
    线程池的原理及实现1、线程池简介:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1创建线程时间,T2在线程中执行任务的时间,T3销毁线程时间。如果:T1+T3远大于T2,则
  • 2023-10-19golang 实现协程池
    import( "fmt" "sync" "time")typeTaskfunc()typeThreadPoolstruct{ workerCountint taskQueuechanTask wgsync.WaitGroup}funcNewThreadPool(workerCount,maxTaskNumint)*ThreadPool{ pool:=&
  • 2023-09-082023-09-08学习记录
    零拷贝疑惑原来8张图,就可以搞懂「零拷贝」了https://www.cnblogs.com/xiaolincoding/p/13719610.html零拷贝(Zero-copy)及其应用详解https://www.jianshu.com/p/193cae9cbf07AIONetty线程模型疑惑面试官:Reactor和Proactor为什么性能高?https://zhuanlan.zhih
  • 2023-09-03设计模式
    1类与类之间的关系继承(泛化)组合:整体对象可以控制成员对象的生命周期,一旦主体对象不存在,成员对象也不存在,整体对象和成员对象之间具有同生共死的关系,例如人的头部与眼、耳朵聚合:成员对象是整体的一部分,但是成员对象可以脱离主体对象独立存在。主体对象析构到的时候成员对象依
  • 2023-08-17当 GPT-4 拥有了 Diff 视图,那真的是如虎添翼!
    目录1.当你要求GPT-4帮你写点代码时2.你需要的背景知识都在这里2.1关于GoPool和DevChat2.2关于GoPool的工作原理2.3我想要让taskQueue的大小可配置3.用Diff视图来看GPT-4写的新代码4.通过Diff内容让GPT-4总结CommitMessage5.总结1.当你要求GPT-4帮
  • 2023-04-01单例模式
    单例模式在全局范围中,某个类的对象只有一个,通过这个唯一的实例向其他模块提供数据的全局访问。需要:默认构造函数私有化因为使用者在类外部无法创建类对象,故在类内创建静态对象通过类名来访问在类中只有静态成员函数才能访问静态成员变量,故提供一个静态成员函数提供该静态对
  • 2022-12-26JS手写练习随笔-20221226.2 ---- 带并发限制的异步调度器
    最多保持特定数量任务执行的异步调度器classScheduler{//最大任务执行数目privatemaxCnt:number;//正在执行的任务数目privaterunningCnt:number;
  • 2022-11-03java 简单使用线程池
    定义一个ThreadPoolExecutorprivatefinalBlockingQueue<Runnable>taskQueue=newLinkedBlockingDeque<>();privatefinalThreadPoolExecutorexecutor=newThreadPo