05 2018 档案

[转]大话后端开发的奇淫技巧大集合
摘要:大话后端开发的奇淫技巧大集合 Hi,大家好,很荣幸有这个机会可以通过写博文的方式,把这些年在后端开发过程中总结沉淀下来的经验和设计思路分享出来 模块化设计 根据业务场景,将业务抽离成独立模块,对外通过接口提供服务,减少系统复杂度和耦合度,实现可复用,易维护,易拓展 项目中实践例子: Before: 阅读全文

posted @ 2018-05-25 10:21 DeeperMiner 阅读(261) 评论(0) 推荐(0) 编辑

[.net 多线程]ThreadPool的安全机制
摘要:ThreadPool类,有两个方法我们没有用到,UnsafeQueueUserWorkItem 和UnsafeRegisterWaitForSingleObject。 为了完全理解这些方法,首先,我们必须回忆 .NET框架中安全策略是怎么运作的。 Windows安全机制是关注资源。操作系统本身允许对 阅读全文

posted @ 2018-05-23 22:48 DeeperMiner 阅读(189) 评论(0) 推荐(0) 编辑

[.net 多线程]Task
摘要:C# 异步编程Task整理(一) c# .Net并行和多线程编程之Task学习记录! .NET 实现并行的几种方式(一) Dispatcher介绍 【C#学习笔记】使用C#中的Dispatcher 用惯了Task,你应该也需要了解它的内部调度机制TaskScheduler 阅读全文

posted @ 2018-05-23 20:12 DeeperMiner 阅读(154) 评论(0) 推荐(0) 编辑

[转]系统拆分及结构演变
摘要:系统拆分及结构演变 前段时间在部门内部做一次分享,考虑到部门新人比较多,经过梳理决定结合自己的经验,讲讲系统是如何经过一系列演变成现在的分布式、服务化的。 随着业务的复杂性增大、系统吞吐量增长,所有功能统一部署难度加大,各个功能模块相互影响,使系统变的笨重且脆弱;因此需要对业务进行拆分、对系统进行解 阅读全文

posted @ 2018-05-23 17:13 DeeperMiner 编辑

[.net 多线程]异步编程模式
摘要:.NET中的异步编程 - EAP/APM 从.NET 4.5开始,支持的三种异步编程模式: 基于事件的异步编程设计模式 (EAP,Event-based Asynchronous Pattern) 异步编程模型(APM,Asynchronous Programming Model) 基于任务的编程模 阅读全文

posted @ 2018-05-23 11:18 DeeperMiner 阅读(423) 评论(0) 推荐(0) 编辑

[.net 多线程]ThreadPool
摘要:两种出发模式:定时8s出发,事件触发器出发(autoresetevent) 阅读全文

posted @ 2018-05-22 22:47 DeeperMiner 阅读(143) 评论(0) 推荐(0) 编辑

[转]B+Tree图解
摘要:一, M阶B+树的定义(M阶是指一个节点最多能拥有的孩子数,M>2): 图1.1 3阶B+树 (1)根结点只有1个,分支数量范围[2,m]。 (2)除根以外的非叶子结点,每个结点包含分支数范围[[m/2],m],其中[m/2]表示取大于m/2的最小整数。 (3)所有非叶子节点的关键字数目等于它的分支 阅读全文

posted @ 2018-05-22 13:52 DeeperMiner 阅读(334) 评论(1) 推荐(0) 编辑

[转] MySQL索引原理
摘要:MySQL索引原理 B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B- 阅读全文

posted @ 2018-05-22 10:27 DeeperMiner 阅读(110) 评论(0) 推荐(0) 编辑

[.net 多线程]SpinWait
摘要:《CLR via C#》读书笔记-线程同步(四) 混合线程同步构造简介 之前有用户模式构造和内核模式构造,前者快速,但耗费CPU;后者可以阻塞线程,但耗时、耗资源。因此.NET会有一些混合了两者的构造,《CLR via C#》的作者给这些构造起了一个别名:混合线程同步构造(Hybrid Thread 阅读全文

posted @ 2018-05-20 17:56 DeeperMiner 阅读(382) 评论(0) 推荐(0) 编辑

[.net 多线程 ]ReaderWriterLock
摘要:ReaderWriterLock 用于同步对资源的访问。在任一特定时刻,它允许多个线程同时进行读访问,或者允许单个线程进行写访问。在资源不经常发生更改的情况下,ReaderWriterLock 所提供的吞吐量比简单的一次只允许一个线程的锁(如 Monitor)更高。 在多数访问为读访问,而写访问频率 阅读全文

posted @ 2018-05-17 23:10 DeeperMiner 阅读(290) 评论(0) 推荐(0) 编辑

[.net 多线程]Barrier
摘要:当需要【一组任务】并行地运行一连串的阶段,但是每一个阶段都要等待所有他任务完成前一阶段之后才能开始,可以通过Barrier实例来同步这一类协同工作。Barrier初始化后,将等待特定数量的信号到来,这个数量在Barrier初始化时指定,在所指定的信号个数已经到来后,Barrier将执行一个指定的动作 阅读全文

posted @ 2018-05-17 22:10 DeeperMiner 阅读(235) 评论(0) 推荐(0) 编辑

[.net 多线程]CountdownEvent
摘要:System.Threading.CountdownEvent 是一个同步基元,它在收到一定次数的信号之后,将会解除对其等待线程的锁定。CountdownEvent在初始化时有一个初始计数量,在每个工作项在完成时调用 Signal。每次调用Signal 时,信号计数都会递减 1。 在主线程上,对 W 阅读全文

posted @ 2018-05-17 21:44 DeeperMiner 阅读(117) 评论(0) 推荐(0) 编辑

[.net 多线程]AutoResetEvent, ManualResetEvent
摘要:ManualResetEvent: 通知一个或多个正在等待的线程已发生事件,允许线程通过发信号互相通信,来控制线程是否可心访问资源。 Set() : 用于向 ManualResetEvent 发送信号,使其取消阻塞状态(唤醒进程)或者开始阻塞进程,这基于 ManualResetEvent 的初始状态 阅读全文

posted @ 2018-05-08 23:05 DeeperMiner 阅读(232) 评论(0) 推荐(0) 编辑

[.net 多线程]Semaphore信号量
摘要:信号量(Semaphore)是一种CLR中的内核同步对象。与标准的排他锁对象(Monitor,Mutex,SpinLock)不同的是,它不是一个排他的锁对象,它与SemaphoreSlim,ReaderWriteLock等一样允许多个有限的线程同时访问共享内存资源。Semaphore就好像一个栅栏, 阅读全文

posted @ 2018-05-07 23:20 DeeperMiner 阅读(313) 评论(0) 推荐(0) 编辑

[.net 多线程]Mutex
摘要:Mutex是可以进程间同步的同步基元。 使用默认属性初始化 Mutex 类的新实例。 使用默认属性初始化 Mutex 类的新实例。 使用 Boolean 值(指示调用线程是否应具有互斥体的初始所有权)初始化 Mutex 类的新实例。 使用 Boolean 值(指示调用线程是否应具有互斥体的初始所有权 阅读全文

posted @ 2018-05-06 16:39 DeeperMiner 阅读(1180) 评论(0) 推荐(0) 编辑

[.net 多线程]volatile 摘录
摘要:一、volatile 介绍 volatile 关键字指示一个字段可以由多个同时执行的线程修改。 声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。 这样可以确保该字段在任何时间呈现的都是最新的值。 volatile 修饰符通常用于由多个线程访问但不使用 lock 语句对访问 阅读全文

posted @ 2018-05-06 15:29 DeeperMiner 阅读(241) 评论(0) 推荐(0) 编辑

[.net 多线程] Interlocked实现CAS操作
摘要:Interlocked:为多个线程共享的变量提供原子操作。 实现原子级运算 1 int increament = 0; 2 Thread th1 = new Thread(() => 3 { 4 for (int i = 0; i < 10; i++) 5 Console.WriteLine($"t 阅读全文

posted @ 2018-05-06 14:23 DeeperMiner 阅读(262) 评论(0) 推荐(0) 编辑

[.net 多线程]Monitor
摘要:Monitor 类通过向单个线程授予对象锁来控制对对象的访问。对象锁提供限制访问代码块(通常称为临界区)的能力。当一个线程拥有对象的锁时,其他任何线程都不能获取该锁。还可以使用 Monitor 来确保不会允许其他任何线程访问正在由锁的所有者执行的应用程序代码节,除非另一个线程正在使用其他的锁定对象执 阅读全文

posted @ 2018-05-05 16:02 DeeperMiner 阅读(332) 评论(0) 推荐(0) 编辑

[.net 多线程]线程基础
摘要:一、线程状态 1.新建状态(New): 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当一个线程处于新生状态时,程序还没有开始运行线程中的代码 2.就绪状态(Runnable) 一个新创建的线程并不自动开始运行,要执行线程,必须调用线程 阅读全文

posted @ 2018-05-05 15:41 DeeperMiner 阅读(281) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示