留数html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-co...
Linux多线程[TOC]
1. 多线程的优势在多进程编程中,程序每处理一个任务,都需要创建一个进程进行处理,而每个进程在创建时都需要复制父进程的进程上下文,且有自己独立的地址空间,当只需要并发处理很小的任务时(如并发服务器处理客户端的请求),这种开销是很不划算的,且每个进程之间的变量并不共享,使得进程间的通信也很麻烦。
这时候多线程的优势就体现了出来,线程也有自己的上下文(thread context),但是只是一些如线程ID、栈、栈指针、程序计数器、通用寄存器之类的东西,所以创建线程的开销较小。这些一般都是在线程运行的函数里被指定,所以在每个线程中都是独立的。而所有线程依旧在这个进程...
Linux Signal本文主要说明Linux信号的安装,用于处理各种信号。
[TOC]
信号的安装Linux主要有两个函数实现信号的安装:signal()和sigaction()。
signal()12#include <signal.h>void (*signal(int signum, void (*handler)(int)))(int);
第一个参数指定信号的值,第二个参数指定针对前面信号的处理函数指针,可以采用系统默认的方式处理信号(SIG_DFL),也可以自己指定函数。
sigaction()12#include <signal.h>int siga...
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
单例模式特点:
单例类只能有一个实例
单例类必须自己创建自己的唯一实例
单例类必须给所有的其他对象提供这一实例
示例代码1234567891011121314151617public class SingleObject { //创建 SingleObj...
原型模式原型模式主要介绍了java中cloneable接口的应用。在Java中,对象的直接等于”=”重载了C/C++中的引用,改变一个类会引起另一类的变化,即浅拷贝。而实现了cloneable接口的类,可以通过clone方法来克隆一个新的类,两个类互不影响,即深拷贝。
123456789101112131415161718192021222324public class SimpleObject implements Cloneable{ private String str; public SimpleObject() { S...
建造者模式介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
主要解决:主要解决在软件系统中,有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
何时使用:一些基本部件不会变,而其组合经常变化的时候。
如何解决:将变与不变分离开。
关键代码:建造者:创建和提供实例,导演:管理建造出来的实例的依赖关系。
应用实例: 1、去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的”套餐”。 2、JAVA 中的 S...
工厂模式
初步理解
工厂模式主要包含了3个部分:
抽象的接口,定义了一组需要完成的事情和一组属性。
实现了这个接口的具体的类
工厂:工厂类有一个返回接口类型的函数,接收的参数则是实现了这个接口的这些类的名字,返回这个类的对象。
代码展示:
12345678910111213141516171819202122232425262728293031323334353637public interface Shape { void draw();}public class Rectangle implements Shape { @Overri...
桥接模式桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。
理解:对应于Java中的接口
适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
过滤器模式过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。
在Java中典型的应用即为分组,通过过滤器模式可以将一个大组中的元素按照不同的过滤方式分到各个小组中。
12345Map<Integer, List<Person >> groupMap = persons.stream().collect(Collectors.groupingBy(Person:...