在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失。传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制。由于NFS中,文件是存储在单机上,因此无法提供可靠性保证,当很多客户端同时访问NFSServer时,很容易造成服务器压力,造成性能瓶颈。另外如果要对NFS中的文件中进行操作,需要首先同步到本地,这些修改在同步到服务端之前,其他客户端是不可见的。某种程度上,NFS不是一种典型的分布式系统,虽然
1
当我们谈论Netty的线程模型时,首先会想到的是经典的ReactorIO多路复用线程模型。从这篇文章中,大家可以学习到如下知识:什么是I/O多路复用Reactor三种线程模型Netty线程模型NioEventLoop源码分析JDKepollbug学习I/O多路复用之前,我们先来了解如下几个概念:阻塞I/O:客户端从socket中读取数据或写入数据时,如果读取时流中没有数据,写入时缓冲区已满,就需要block,知道流中有数据或者缓冲区的数据被排空。非阻塞I/O:客户端从流中读取数据,如果流中没有数据,则立即返回,不发生block。同步I/O:同步I/O将导致请求的I/O操作一直被block,直到
2021-02-24 14:04:08 1.23MB 深入理解Netty线程模型
1
《深入理解OpenCV 实用计算机视觉项目解析》(高清晰带目录),本书系统地介绍如何使用OpenCV来构建与计算机视觉相关的应用,如增强现实、车牌识别、人脸检测等。
2021-02-22 11:50:41 121.65MB OpenCV 计算机视觉
1
一本全面,详细介绍C++11的教程,同时也加入了自己的阅读笔记
2021-02-21 12:02:58 33.12MB C++ C++11
1
虽然GCD已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而GCD是基于C的API,它们就像一组尖锐的棱角戳进Objective-C的平滑世界。我们将分两个部分的教程来深入学习GCD。在这两部分的系列中,第一个部分的将解释GCD是做什么的,并从许多基本的GCD函数中找出几个来展示。在第二部分,你将学到几个GCD提供的高级函数。GCD是libdispatch的市场名称,而libdispatch作为Apple的一个库,为并发代码在多核硬件(跑iOS或OSX)上执行提供有力支持。它具有以下优点:1.GCD能通过推迟昂贵计算任务并在后台运行它们来改善你的应用的响应性
2021-02-21 09:08:36 193KB 深入理解GCD(一)
1
在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD如何工作的知识。通过在初始化时利用dispatch_once,你创建了一个线程安全的PhotoManager单例,而且你通过使用dispatch_barrier_async和dispatch_sync的组合使得对Photos数组的读取和写入都变得线程安全了。除了上面这些,你还通过利用dispatch_after来延迟显示提示信息,以及利用dispatch_async将CPU密集型任务从ViewController的初始化过程中剥离出来异步执行,达到了增强应用的用户体验的目的。如果你一直跟着第一部分的教程在写代码,那你可以继续你
2021-02-21 09:08:32 287KB 深入理解GCD(二)
1
详细介绍大数据趋势与发展、大数据处理技术、运营商与大数据、大数据应用场景、华为大数据及数据挖掘解决方案
一本不错的讲述CNN的基本工作原理和相关CNN网络结构的手册
2021-02-20 09:18:47 6.9MB 卷积神经网络
1
《深入理解计算机系统》(英文版)主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率。此书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境,是这一领域的权威之作。
2021-02-15 19:40:20 21.23MB 计算机系统
1
java线程之间的通信对程序员完全透明,内存可见性问题很容易困扰java程序员,本文试图揭开java内存模型神秘的面纱。本文大致分三部分:重排序与顺序一致性;三个同步原语(lock,volatile,final)的内存语义,重排序规则及在处理器中的实现;java内存模型的设计目标,及其与处理器内存模型和顺序一致性内存模型的关系
2021-02-09 13:04:07 1.32MB jvm