2018年12月5日

【转】委托的三种调用示例(同步调用 异步调用 异步回调)

摘要: 本文将主要通过同步调用、异步调用、异步回调三个示例来讲解在用委托执行同一个加法类的时候的的区别和利弊。 首先,通过代码定义一个委托和下面三个示例将要调用的方法: 一、同步调用 委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。 阅读全文

posted @ 2018-12-05 09:49 DeeperMiner 阅读(207) 评论(0) 推荐(0) 编辑

2018年11月22日

【转】【java源码分析】Map中的hash算法分析

摘要: 全网把Map中的hash()分析的最透彻的文章,别无二家。 2018年05月09日 09:08:08 阅读数:957 2018年05月09日 09:08:08 阅读数:957 阅读数:957 你知道HashMap中hash方法的具体实现吗?你知道HashTable、ConcurrentHashMap 阅读全文

posted @ 2018-11-22 23:06 DeeperMiner 阅读(392) 评论(0) 推荐(0) 编辑

2018年11月19日

【.net】Dictionary<TKey, TValue>源码分析

摘要: 一图胜过千言万语~ 阅读全文

posted @ 2018-11-19 14:19 DeeperMiner 阅读(111) 评论(0) 推荐(0) 编辑

2018年11月18日

【转】线程堆栈

摘要: 这是一篇转发的文章,我对他进行了格式化而已,原文出处不详。 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员 阅读全文

posted @ 2018-11-18 18:58 DeeperMiner 阅读(786) 评论(0) 推荐(0) 编辑

2018年11月15日

[.net]ConcurrentBag源码分析

摘要: ConcurrentBag根据操作线程,对不同线程分配不同的队列进行数据操作。这样,每个队列只有一个线程在操作,不会发生并发问题。其内部实现运用了net4.0新加入的ThreadLocal线程本地存储功能。各个队列间通过链表维护。 其内部结构如下: 1、获取线程本地队列: 1 /// <summar 阅读全文

posted @ 2018-11-15 17:48 DeeperMiner 阅读(301) 评论(0) 推荐(0) 编辑

2018年10月24日

【转】.NET内存管理、垃圾回收

摘要: 1. Stack和Heap 每个线程对应一个stack,线程创建的时候CLR为其创建这个stack,stack主要作用是记录函数的执行情况。值类型变量(函数的参数、局部变量 等非成员变量)都分配在stack中,引用类型的对象分配在heap中,在stack中保存heap对象的引用指针。GC只负责hea 阅读全文

posted @ 2018-10-24 14:52 DeeperMiner 阅读(294) 评论(0) 推荐(0) 编辑

2018年10月17日

【转】12306系统架构优化

摘要: coolshell陈皓优化方案原文:http://coolshell.cn/articles/6470.html一、业务复杂度比对(1)qq业务模型:只访问自己的数据(2)秒杀业务模型:秒杀能够只接受前N个请求,后续请求直接返回(3)奥运会售票业务模型:注册+抽奖,非先来先抢,可以事后线下处理(4) 阅读全文

posted @ 2018-10-17 16:17 DeeperMiner 阅读(364) 评论(0) 推荐(0) 编辑

【转】Leader-Follower线程模型

摘要: 上图就是L/F多线程模型的状态变迁图,共6个关键点: (1)线程有3种状态:领导leading,处理processing,追随following (2)假设共N个线程,其中只有1个leading线程(等待任务),x个processing线程(处理),余下有N-1-x个following线程(空闲) 阅读全文

posted @ 2018-10-17 14:09 DeeperMiner 阅读(166) 评论(0) 推荐(0) 编辑

【转】基于环形队列法的延迟消息队列设计2(58沈剑)

摘要: 很多时候,业务有“在一段时间之后,完成一个工作任务”的需求。 例如:滴滴打车订单完成后,如果用户一直不评价,48小时后会将自动评价为5星。 一般来说怎么实现这类“48小时后自动评价为5星”需求呢? 常见方案:启动一个cron定时任务,每小时跑一次,将完成时间超过48小时的订单取出,置为5星,并把评价 阅读全文

posted @ 2018-10-17 10:38 DeeperMiner 阅读(1229) 评论(0) 推荐(0) 编辑

【转】基于环形队列法的延迟消息队列设计1(58沈剑)

摘要: 一、缘起 很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。 例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消 阅读全文

posted @ 2018-10-17 10:37 DeeperMiner 阅读(791) 评论(0) 推荐(0) 编辑

导航