#新设计

《Redis设计与实现》之第七章:压缩列表

压缩列表是列表键和哈希键的底层实现之一。压缩列表是为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。【压缩列表是一种数据结构,这种数据结构的功能是将一系列数据与其编码信息存储在一块连续的内存区域,这块内存物理上是连续的,逻辑上被分为多个组成部分,其目的是在一定可控的时间复杂读条件下尽可能的减少不...

《图解Java多线程设计模式》之十一:Two-Phase Termination模式

一,Two-PhaseTermination模式翻译过来就是:分两阶段终止二,示例程序publicclassCountupTreadextendsThread{privatelongcounter=0;privatevolatilebooleanshutdownRequested=false;//中止请求publicv...

《图解Java多线程设计模式》之十:Future模式

一,Future模式假设有一个方法需要花费很长的时间才能获取运行结果。那么,与其一直等待结果,不如先拿一张提货单。获取提货单并不耗费时间。这里提货单就称为Future角色获取Future角色的线程会在稍后使用Future角色来获取运行结果在处理开始时先返回Future角色,等到其他线程出来终止后,在将结果设置到Futu...

《图解Java多线程设计模式》之九:Worker Thread模式

一,WorkerThread模式也叫ThreadPool(线程池模式)二,示例程序情景:一个工作车间有多个工人处理请求,客户可以向车间添加请求。请求类:Request定义了请求的信息和处理该请求的方法车间类:Channel定义了车间里的工人,存放请求的容器。接收请求的方法,处理完请求后取出请求的方法客户类:Client...

《图解Java多线程设计模式》之八:Thread-Per-Message模式

一,Thread-Per-Message模式翻译过来就是每个消息一个线程。message可以理解为命令,请求。为每一个请求新分配一个线程,由这个线程来执行处理。Thread-Per-Message模式中,请求的委托端和请求的执行端是不同的线程,请求的委托端会告诉请求的执行端线程:这项工作就交给你了二,示例程序Host类...

《图解Java多线程设计模式》之七:Read-Write Lock模式

一,Read-WriteLock模式在Read-WriteLock模式中,读取操作和写入操作是分开考虑的。在执行读取操作之前,线程必须获取用于读取的锁。在执行写入操作之前,线程必须获取用于写入的锁。所以:当一个线程在读取时,其他线程可以读取,但是不可以写入。当一个线程正在写入时,其他线程不可以读取或写入。因为执行互斥处...

《图解Java多线程设计模式》之六:Producer-Consumer模式

一,Producer-Consumer模式Producer:生产者的意思,指的是生成数据的线程。Consumer:消费者的意思,指的是使用数据的线程当生产者和消费者以不同的线程运行时,两者之间的处理速度差异就会引起问题。比如,消费者想获取数据,可是数据还没有生成。或者生产者想要交付数据,而消费者的状态还无法接收数据。P...

《图解Java多线程设计模式》之五:Balking 模式

一,什么是Balking模式如果现在不合适执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。在Balking模式中,如果守护条件不成立,就立即中断处理。二,例子:定期将当前数据内容写入文件中,比如文本工具的自动保存功能,定期的将数据保存到文件中。当数据内容被写入时,会完全覆盖上次写入的内容,只有最新的内容才会...

《图解Java多线程设计模式》之三:Immutable 模式

一,什么是Immutable模式?immutable就是不变的,不发生改变的。Immutable模式中存在着确保实例状态不发生变化改变的类。这些实例不需要互斥处理。String就是一个Immutable类,String实例所表示的字符串的内容不会变化。二,定义一个使用Immutable模式的类publicfinalcl...

《图解Java多线程设计模式》之二:Single Thread Execution 模式

一,什么是SingleThreadExecution模式?同一时间内只能让一个线程执行处理二,例子1.不安全的情况用程序模拟三个人频繁地通过一个只允许一个人经过的门。当人通过时,统计人数便会增加,并记录通行者的姓名和地址门:publicclassGate{privateintcounter=0;privateStrin...

《图解Java多线程设计模式》之一:基础

一,什么是线程?1.java中把正在执行程序的主体称为线程。2.单线程:当我们在阅读程序时,会根据处理流程来阅读,比如:首先执行前面的语句,然后再执行后面的语句,我们试着用笔将执行顺序描画出来,会发现描画出来的是一条弯弯曲曲的长线。这条长线始终是一条,无论调方法还是执行复杂的逻辑,对于这种处理流程始终如一条线的程序,称...

Linux应用程序设计之网络基础编程

1、TCP/IP协议概述1.1、OSI参考模型及TCP/IP参考模型OSI协议参考模型是基于国际标准化组织(ISO)的建议发展起来的,从上到下工分为7层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。与此相区别的TCP/IP协议模型一开始就遵循简单明确的设计思路,它将OSI的7层参考模型简化为4层,从而得...

Python高手之路【十二】面向对象设计模式

单例模式单例,顾名思义单个实例。classPerson:__instance=Nonedef__init__(self):pass@staticmethoddefgetInstance():ifPerson.__instance:returnPerson.__instanceelse:Person.__instance...

8月最新的美团技术四面已拿offer:JVM、多线程、算法、设计模式

​美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选.后来让一位大佬帮我改了一下简历,重新投另一个部门,获得了面试机会.话不多说,看核心重点问题吧!!!!美团技术一面20分钟1、自我介绍说了很多遍了,很流畅捡重点介绍完。2、问我数据结构算法好不好挺好的(其实心还是有点虚,不过最近刷了很多题也只能壮着胆子充胖子...

用了 Lambda 之后,发现可以忘记设计模式了

设计模式是过去的一些好的经验和套路的总结,但是好的语言特性可以让开发者不去考虑这些设计模式。面向对象常见的设计模式有策略模式、模板方法、观察者模式、责任链模式以及工厂模式,使用Lambda表达式(函数式编程思维)有助于避免面向对象开发中的那些固定代码。下面挑选了策略模式和职责链模式两个案例进行分析。案例1:策略模式&n...
首页上一页...1819202122...下一页尾页