优先级

HTTPS、HTTP/2前端入门篇

[亡魂溺海] 提交于 2020-04-04 10:28:26
随着网络安全重要性日益凸显,越来越多的站点已经全站切换到HTTPS,其中很多HTTPS站点同时将HTTP协议升级到了HTTP/2。作为一只前端,最近一直在学习和应用相关知识点,便总结梳理如下。 一、何为HTTPS、HTTP/2? HTTPS 全称Hypertext Transfer Protocol Secure,是一种网络 安全 传输协议,是在HTTP之下,传输层至上,增加了传输层安全协议TLS (Transport Layer Security)。HTTPS通过HTTP进行通信,通过TLS加密传输数据,对HTTP协议的版本没有要求,可以是HTTP/1.x,也可以是HTTP/2。 HTTP/2 超文本传输协议的第2版(最初命名为HTTP 2.0),简称h2(加密连接)或h2c(非加密连接)。HTTP/2 对是否在加密通道上建立连接没有要求,但为了避免代理和中间设备对数据传输的影响,所有支持HTTP/2的浏览器都只支持HTTPS信道上的HTTP/2(参见 caniuse )。 HTTP/2 的主要目标是 提升传输性能 ,减少延迟,提高吞吐量,从而提高页面性能。 二、为何说HTTPS是安全的? 我们知道HTTP是明文传输的,假设A同学与B同学要通信,途径M同学,就可以被M同学查看并篡改,不能保证数据的安全。我们首先想到的就是加密,AB同学约好密钥key(因为这里的A

java多线程

旧城冷巷雨未停 提交于 2020-04-04 06:16:05
1、进程与线程 我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。 当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。 同步这个词是从英文synchronize(使同时发生)翻译过来的。我也不明白为什么要用这个很容易引起误解的词。既然大家都这么用,咱们也就只好这么将就。 线程同步的真实意思和字面意思恰好相反。线程同步的真实意思,其实是“排队”:几个线程之间要排队,一个一个对共享资源进行操作,而不是同时进行操作 。 因此,关于线程同步,需要牢牢记住的第一点是: 线程同步就是线程排队 。同步就是排队。线程同步的目的就是避免线程“同步”执行。这可真是个无聊的绕口令。 关于线程同步,需要牢牢记住的第二点是 “共享” 这两个字。 只有共享资源的读写访问才需要同步 。如果不是共享资源,那么就根本没有同步的必要。 关于线程同步,需要牢牢记住的第三点是,只有“ 变量 ”才需要同步访问。如果共享的资源是固定不变的,那么就相当于“常量”,线程同时读取常量也不需要同步。至少一个线程修改共享资源,这样的情况下,线程之间就需要同步。

数据类型、常量、变量、printf、scanf和运算符

随声附和 提交于 2020-04-03 10:32:55
数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式。 C语言中有5大数据类型:基本类型、构造类型、指针类型、空类型、定义类型。 C语言中常见的数据类型: 各种数据类型在内存中占用的空间大小:(单位:字节)(1 Byte = 8 bit) 16位编译器 32位编译器 64位编译器 char 1 1 1 Int 2 4 4 Float 4 4 4 Double 8 8 8 Short 2 2 2 Long 4 4 8 Long long 8 8 8 Void *(指针变量) 2 4 8 各种数据的表示范围: 常量 常量就是在内存中固定的数据,不可改变其内容。 常见分类: 整型常量 a) 十进制常量,和自然界十进制表示法一致 b) 二进制常量,以0b(0B)开头,例如:0b1100 c) 八进制常量,以0开头,例如:045 d) 十六进制常量,以0x开头,例如:0x123 实型常量 a) 单精度常量,小数后面加f表示单精度常量。 例如:3.14f b) 双精度常量,和自然界小数表示方法一致。 例如:3.1415926 3.8e5(或3.8E5 相当于3.8 x 10 5 ) 字符型常量 用单引号括起来的单个字符表示。 a) 普通字符:例如: ‘A’ ‘b’ ‘$’等等 b) 转义字符:例如:’\n’ ‘\t’ ‘%%’

Grand Central Dispatch (GCD) 转

北城余情 提交于 2020-04-03 05:31:34
GCD是异步执行任务的技术之一。 GCD使用很简洁的记述方法,实现了极为复杂繁琐的多线程编程。 dispatch_async(queue, ^{ //长时间处理 //例如AR用动画识别 //例如数据库访问 //长时间处理结束,主线程使用该处理结果 dispatch_async( dispatch_get_main_queue(), ^{ //只在主线程可以执行的处理 //例如用户界面更新 }); }); 在NSObject中,提供了两个实例方法来实现简单的多线程技术:performSelectorInBackground:withObject performSelectorOnMainThread。 我们也可以改用performSelector系方法来实现前面使用的GCD。 //NSObject performSelectorInBackground:withObject:方法中执行后台线程 - (void)launchThreadByNSObject_performSelectorInBackground_withObject { [self performSelectorInBackground:@selector(doWork) withObject:nil]; } //后台线程处理方法 - (void)doWork { @autoreleasepool{ //长时间处理,

Grand Central Dispatch(GCD)详解

蓝咒 提交于 2020-04-03 05:31:01
概述 GCD 是苹果异步执行任务技术,将应用程序中的线程管理的代码在系统级中实现。开发者只需要定义想要执行的任务并追加到适当的 Dispatch Queue 中, GCD 就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可以统一管理,也可执行任务,这样比以前的线程更有效率。 GCD的使用 dispatch_sync与dispatch_async dispatch_sync synchronous 同步,一旦调用 dispatch_sync 方法,那么指定的处理 (block) 追加到指定 Dispatch Queue 中在执行结束之前该函数都不会返回,也就是说当前的线程会阻塞,等待 dispatch_sync 在指定线程执行完成后才会继续向下执行。 dispatch_async synchronous异步,一旦调用 dispatch_async 方法,那么指定的处理 (block) 追加到指定的 Dispatch Queue 中, dispatch_async 不会做任何等待立刻返回,当前线程不受影响继续向下执行。 注意 使用 dispatch_sync 容易造成死锁,一般情况下应该使用 dispatch_async ,例如 dispatch_queue_t queue = dispatch_get_main_queue(); dispatch

ArcGIS制图之Sub Points点抽稀

半世苍凉 提交于 2020-04-03 01:54:42
简介 Sub Points工具是 Esri 中国自主开发的一个插件,该工具优先考虑点在空间分布上的均匀合理性,并结合点数据中包含的 "优先级" 属性进行筛选。通过获取每个点在一定范围内拥有的相邻点的数目信息,得到地图中点密度的分布状况。抽稀时在若干相临近的点中首先比较优先级,保留优先级高的;优先级相同时比较 NAME 字段,保留 NAME 长度短的;两者都相同时随机选择。使用 Sub Points 进行点抽稀的数据,必须包含"优先级"和"name"两个字段。其中优先级用来设置数据的重要性,在抽稀过程中综合考虑数据的优先级别。 修改程序 原始版本是基于10.0开发的,在10.1及以上版本需要修改两处: 一是SubPointsFunctionFactory.cs文件中CreateGPFunctionNames方法的MinimumProduct属性修改为: functionName.MinimumProduct = esriProductCode.esriProductCodeBasic; 二是SubPointsFunction.cs文件中IsLicensed()函数修改为: IAoInitialize myAoInitialize = new AoInitializeClass(); ILicenseInformation myLic = (ILicenseInformation

C语言运算符优先级说明

佐手、 提交于 2020-04-02 09:22:58
下面按优先级从高到低的顺序总结一下各种运算符,每一条所列的各运算符具有相同的优先 级,对于同一优先级的多个运算符按什么顺序计算也有说明,双目运算符就简单地用“左结 合”或“右结合”来说明了。和指针有关的运算符* & ->也在这里列出来了,以后再详细解释。 1 、标识符、常量、字符串和用()括号套起来的表达式是组成表达式的最基本单元,在运算中做 操作数,优先级最高。 2、后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员- >、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序 (也就是从左到右)依次运算,比如a.name++,先算a.name,再++,这里的.name应该看成a的 一个后缀,而不是把. 看成双目运算符。 3、单目运算符,包括前缀自增++、前缀自减--、 sizeof、类型转换()、取地址运算&、指针间接 寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数 从近到远的顺序(也就是从右到左)依次运算,比如!~a,先算~a,再求!。 4、乘*、除/、模%运算符。这三个运算符是左结合的。 5、加+、减-运算符。左结合。 6、移位运算符<<和>>。左结合。 7、关系运算符< > <= >=。左结合。 8、相等性运算符==和!=。左结合。 9、按位与&。左结合。 10

华为防火墙静态路由结合多出口选路

▼魔方 西西 提交于 2020-04-01 08:44:27
防火墙的静态路由 常见路由协议概述  静态路由,静态路由多出口  动态路由  按作用范围分为 1) IGP路由:RIP、OSPF、ISIS 2) EGP路由:BGP  按使用算法分为 3) 链路状态协议:OSPF、ISIS 4) 距离矢量协议:RIP、BGP  策略路由、ISP选路 路由协议优先级  当存在多个路由信息源时,具有最高优先级的路由协议发现的路由将成为当前路由  默认在华为中,动态优先级优于静态 静态路由基本概念  配置静态路由可以在路由选择中实施非常精确的控制,但是当网络发生变化或故障时需要管理员重新进行手工配置 语法: ip route-static 目标地址 掩码 下一跳地址 出接口 出接口+下一跳(推荐)  静态路由可以指定出接口或指定下一跳地址  指定出接口场景 1) PPP接口 2) PPPoE接口  指定下一跳地址场景 1) NBMA接口 2) 以太网接口 3) Virtual-template 静态路由与多出口  多出口指的是USG通过多个接口连接到Internet或其他网络,多个接口之间形成主备备份或负载分担关系,从而提高了业务的可靠性  多出口功能生效的前提条件是USG上存在多条等价路由  多出口支持的模式有  主备模式  负载分担模式 1) 均衡式负载分担(缺省模式) 2) 溢出式负载分担 主备模式 

Linux系统性能检测

自闭症网瘾萝莉.ら 提交于 2020-04-01 02:12:19
转自:http://www.cnblogs.com/itech/archive/2011/06/08/2075145.html 一 、uptime uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况。 uptime的输出包含一项内容是load average,显示了最近1,5,15分钟的负荷情况。它的值代表等待CPU处理的进程数,如果CPU没有时间处理这些进程,load average值会升高;反之则会降低。 load average的最佳值是1,说明每个进程都可以马上处理并且没有CPU cycles被丢失。对于单CPU的机器,1或者2是可以接受的值;而在一个多CPU的系统中这个值应除以物理CPU的个数,假设CPU个数为4,而load average为8或者10,那结果也是在2多点而已。 也可以使用uptime命令来判断网络性能。例如,某个网络应用性能很低,通过运行uptime查看服务器的负荷是否很高,如果不是,那么问题应该是网络方面造成的。 也可以查看/proc/loadavg 和/proc/uptime两个文件来获取相关的信息。 以下是uptime的运行实例: 二 、Top(CPU) Top命令显示了实际CPU使用情况,默认情况下,它显示了服务器上占用CPU的任务信息并且每5秒钟刷新一次。你可以通过多种方式分类它们,包括PID

运算符优先级 详细列表

我们两清 提交于 2020-03-31 16:12:01
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->成员名 2 - 负号运算符 -表达式 右到左 单目运算符 (类型) 强制类型转换 (数据类型)表达式 ++ 自增运算符 ++变量名/变量名++ 单目运算符 -- 自减运算符 --变量名/变量名-- 单目运算符 * 取值运算符 *指针变量 单目运算符 & 取地址运算符 &变量名 单目运算符 ! 逻辑非运算符 !表达式 单目运算符 ~ 按位取反运算符 ~表达式 单目运算符 sizeof 长度运算符 sizeof(表达式) 3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式/整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 变量<<表达式 左到右 双目运算符 >> 右移 变量>>表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式 双目运算符 < 小于 表达式<表达式 双目运算符 <= 小于等于 表达式<=表达式 双目运算符 7 == 等于 表达式==表达式 左到右 双目运算符 !=