- 博客(17)
- 收藏
- 关注
原创 C# 函数式编程初探
(一)什么是函数式编程函数式编程(FC)是以函数作为第一类值,避免状态突变的编程风格。状态突变:存储在寄存器的值就地更新。(二)C#中有哪些常见的函数式方法LINQ的Where和OrderBy函数对列表进行过滤或排序不会影响原始列表;Sort函数对列表排序会影响原始列表。var nums = Range(-10000,20001).Reverse().ToList();//[10000,9999,..,-9999,-10000]Action task1 = ()=> WriteLine(
2020-12-13 22:55:55
598
2
原创 Docker学习(一)了解Docker
作为一只菜鸟,当大佬们和你谈论Docker、云计算的时候,能想到什么?隔离?镜像打包?快速部署? 对或不对,都是一头雾水。所以,作为一名资深菜鸟,决定一探究竟。
2020-11-15 16:44:27
130
原创 分布式系统学习(七)——CORBA
中间件方案的两种编程抽象:分布式对象和组件分布式对象中间件允许使用面向对象的编程模型开发分布式系统,可由远程方法或者分布式事件调用对象通信。该类方案提供了中间件方案的规约,允许开发者只关注规约接口,同时支持扩展。基于分布式对象的中间件解决方案有Java RMI和CORBA。分布式对象中间件的限制:隐式依赖:中间件不透明,编程复杂无部署支持基于组件的中间件由基于对象方法的中间件演...
2019-09-15 18:14:36
465
原创 分布式系统学习(六)——操作系统支持
操作系统层核心操作系统组件进程管理器:负责进程的创建和操作。进程包括一个地址空间以及一个或者多个线程,是资源管理器单元。线程管理器:负责线程创建、同步和调度。通信管理器:负责同一台计算机上不同进程中的线程之间通信。内存管理器:负责管理物理内存和虚拟内存。管理器:负责处理中断、系统调用陷阱和其他异常,同时控制内存管理单元和硬件缓存以及处理器和浮点寄存器操作。又称为硬件抽象层。内核和...
2019-09-14 17:53:47
216
原创 排序算法之快速排序
快速排序的特点是原地排序,且将长度为N的数组所需的时间和NlgN成正比。基本算法快速排序是一种分治的排序算法,将数组排序的方式是当两个子数组都有序时整个数组也就有序了。快速排序的关键在于切分(partition),先使用切分方法将a[j]放到合适位置,使a[lo]到a[j-1]中的元素都不大于·a[j],a[j+1]到a[hi]的元素都不小于a[j]。然后,再递归调用将其他位置的元素排序。...
2019-08-25 17:04:08
160
原创 排序算法之归并排序
归并操作:将两个有序的数组归并成一个更大的有序数组。归并排序:将数组递归的分成两半分别排序,然后将结果归并起来。归并算法可以将任意长度为N的数组排序所需时间和NlogN成正比,然鹅,它所需的额外空间与N成正比。原地归并原地归并适用于两个不同的有序数组,可以将两个有序数组归并为一个更大的有序数组。归并步骤(Merge):将原数组数据拷贝到备用空间中设置数组左边界lo=0、右边界hi=9...
2019-08-25 16:29:05
217
原创 分布式系统学习(五)——组通信、发送-订阅、消息队列、元组空间
间接通信 是在分布式系统中,实体通过中介者进行通信,借助中介者,实现时间或空间解耦。时间维度:发送方和接收方是否需要在同一生命周期(与异步通信的差别)。空间维度:发送方和接收方是否需要知道对方的(IP)地址。时间耦合时间解耦空间耦合发送方与接收者直接通信,双方同时在线。例:消息传递、RPC发送方与接收者直接通信,双方可有各自的生命周期。例:邮件发送空间解耦发...
2019-08-13 23:33:20
1850
原创 初级排序算法
选择排序对于长度为N的数组,选择排序需要约N^2/2次比较和N次交换特点:运行时间和输入无关;数据移动次数最少(N)def Exch(list,min,i): tmp=list[i] list[i]=list[min] list[min]=tmpdef SelectSort(list): for i in range(len(list)): min=i for j ...
2019-08-04 18:13:41
216
原创 分布式系统学习(四)——远程调用
远程调用请求-应答协议在TCP协议之上,通过数据报API中发送和接收操作来描述。请求-应答协议基于三个通信原语:doOperation、getRequest、sendReply,该协议可将服务器的应答消息作为客户端请求消息的确认。请求-应答协议消息结构messageType int(0 请求 1 应答)requestId。 int 消息唯一标识符 由整数序列 发送进程IP 端口号 组成...
2019-07-28 11:39:02
648
原创 分布式系统学习笔记(三)——进程间通信
TCP/UDP与IP的区别IP协议支持两台计算机间通信TCP/UDP协议提供两个进程间通信,通过端口号完成目标计算机上特定进程的寻址。UDP的应用程序接口提供了消息传递的抽象。不需要创建开销和确认消息,适用于不需要可靠传输单个或多个消息的服务和应用。TCP的应用程序提供了进程对之间的双向流抽象。TCP是基于流,面向连接的编程,发送进程和接收进程间建立双向的通信通道,该连接只针对端到端,与中...
2019-07-16 23:34:15
1256
原创 分布式系统学习笔记(二)——网络和网际互联
网络和网际互连基础知识通信子系统: 分布式系统提供通信设备的软硬件组件,如互联网。主机:计算机和其它使用网络进行通信的设备。结点:在网络上的所有计算机或者交换设备。分布式系统的通信需求性能影响两个互联计算机间消息传输速度的参数。延迟:执行发送操作之后和数据到达目标计算机之前这段时间。可用传送空消息来度量。数据传输率:数据在网络上两台计算机间传输的速度。 用bit/s为单位。消息...
2019-06-20 22:24:15
712
原创 分布式系统学习笔记(一)——基本特征和系统模型
分布式系统的特征==划重点==1. 什么是分布式系统分布式系统是硬件或软件组件分布在连网的计算机上,组件间通过传递消息进行通信和动作协调的系统。2. 分布式系统的特征并发性:组件执行并发性操作;缺乏全局时钟:系统没有全局时钟概念,依赖消息发送的事实判断进程的先后顺序;故障独立性:某个组件发生故障的同时,另一个组件仍可能正常运行。组件无法区分网络故障和其他组件故障引起的通信异常。3....
2019-06-03 23:03:27
1310
原创 Redis学习(二)---命令的使用
全局命令功能命令备注查看所有键keys *o(n)键总数dbsizeo(1)检查键是否存在exists key存在返回1,否则0删除键del [key1 key2 …]返回成功删除键的个数键过期expire key seconds超过过期时间后,自动删除键查看过期时间ttl key>=0:剩余过期
2019-05-29 23:15:42
84
原创 Redis学习(一)——基本概念及部署步骤
概念集合Redis是一种基于键值对的NoSQL数据库;Redis的值类型包括:string、hash、list、set、zset、Bitm、HyperLogLog、GEO(地球信息定位);Redis可以将内存数据通过快照和日志的形式保存到硬盘上,以防内存数据丢失;Redis特性有:–速度快:内存中读写数据,C语言开发,单线程架构,优质的开源源码–基于键值对的数据结构服务器–功能丰富...
2019-02-03 18:25:19
236
原创 C# 多线程学习 (二)--- 异步函数
异步函数是C# 5.0引入的新语言特性。使用异步函数可以规避人为线程操作,简化了异步编程的方法。关键词 Async、Await使用关键词async 、await创建异步函数,首先使用async标记异步函数,返回结果是Task、Task< T > 、void。异步函数内需要用await标记函数内异步操作。异步函数的调用过程:在线程池中发起await标记的异步操作,返回工作线程;...
2018-12-16 12:14:44
806
原创 C# 多线程学习 (一)--- 线程池VS任务
C# 异步线程C# 5.0 异步函数--果壳中的C#1. await2.Async3. 资源集合C# 5.0 异步函数–果壳中的C#1. await2.Async3. 资源集合14.并发与异步 - 3.C#5.0的异步函数 -《果壳中的c#》...
2018-12-10 11:25:11
836
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人