文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483787&idx=1&sn=08dd3404ccba0bca58624cd7dc55757a&chksm=e9fdd47fde8a5d6942768bbadf68bd0803659f13500f124045354d4b5d78813ad215164e2218&scene=178&cur_album_id=134127308363…
目录 · 改写设计模式 · 策略模式(Strategy Pattern) · 模板方法模式(Template Method Pattern) · 观察者模式(Observer Pattern) · 责任链模式(Chain of Responsibility Pattern) · 简单工厂模式(Simple Factory Pattern) · 高阶函数与柯里化 改写设计模式 策略模式(Strategy Pattern) 1. 改写前 a) ValidationStrategy.java publ…
在高级篇二中,我们讲解了5中常用的IO模型,理解这些常用的IO模型,对于编写服务器程序有很大的帮助,可以提高我们的并发速度!因为在网络中通信主要的部分就是IO操作.在这一篇当中我们会重点讲解在第二篇当中提到的IO复用模型,即select机制.其实select机制有一些缺陷,后来产生了一种更加高效的机制epoll,稍后会讲解! 一.select机制 1. 原理:select可以理解成一个监听器,可以监听多个文件描述符.当某个文件描述符的状态发生改变了(可读/可写),操作系统就会发送消息给应用程序,…
一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容. 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js更是难,中间需要不断的积累与重温. 本书不是读一两遍就能把这书吃透,需要多读,可谓温故而知新,可以为师矣. 很多人看这些厚的书都是三天打鱼两天晒网,很少能看下去,能记住的东西往往前3章的内容,所以我写博客就是为了能和大家一起来读这本书,一起学JS. 二.基本概念(灵魂篇) 上一篇是躯壳篇讲的是一些了…
并发编程之第三篇(synchronized) 3. 自旋优化 4. 偏向锁 撤销-其它线程使用对象 撤销-调用wait/notify 批量重偏向 批量撤销 5. 锁消除 4.7 wait/notify API介绍 4.8 wait notify的正确姿势 同步模式之保护性暂停 异步模式之生产者/消费者 4.9 Park & Unpark 原理之park & unpark 4.10 重新理解线程状态转换 3. 自旋优化 重量级锁竞争的时候,还可以使用自旋来进行优化,如果当前线程自旋成功(即这…
本来是打算讲并行For和PLINQ的,但是我感觉前三篇我没有讲得很清晰.之前一直在看<CLR via C#>(后文简称CLR)的多线程部分,其中有些部分不是很明白,今天翻开<果壳中的C#>(后文简称果壳),看了下多线程部分,发现这本书讲的内容虽然很少,但是提纲挈领,把我之前读CLR中的知识点都串了起来.之前讲关键字async,await时,提到了状态机.其实,await会被编译成awaiter.GetAwaiter()方法,以及之后的委托,果壳中有很简单的例子来讲解,让我茅塞顿开,…
iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力 (3)如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据 新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻 视频:优酷.百度视频.搜狐视频.爱奇艺视频 音乐…
简介 本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助. 配图 作为一个iOS 开发者,那么你一定用过Masnory/ SnapKit: Masonry是一个OC开发中,非常好用的自动布局的第三方框架: SnapKit是Masonry团队打造的swift版本的自动布局框架:如果你没有用过,在自动布局中用的是苹果原生的或者原生的升级版VFL语言,那我只好为你点"赞…
简介 本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助. 作为一个iOS 开发者,那么你一定用过Masnory/ SnapKit: Masonry是一个OC开发中,非常好用的自动布局的第三方框架: SnapKit是Masonry团队打造的swift版本的自动布局框架:如果你没有用过,在自动布局中用的是苹果原生的或者原生的升级版VFL语言,那我只好为你点"赞&qu…
一 前言 看了一下,距离上一篇博客的发表已经过去了4个月,时间过得好快啊.本篇博客是JDFS系列的第三篇博客,JDFS的目的是为了实现一个分布式的文件管理系统,前两篇实现了基本的上传.下载功能,但是那还不能算作分布式文件管理.本篇博客将在前两篇的基础上增加一系列分布式的功能,比如流式云存储,就是客户端把本地的文件切分成若干片后,以冗余的方式存储到分布式数据结点上:所谓的流式传递读者可以在网上搜索一下HDFS的流式传递,基本上就是那个意思,正文中会详细介绍这个,此处不再赘述.除了分布式存储外,当然…