优先级

IEEE802.1Q-1999 VLAN

南楼画角 提交于 2020-03-07 04:55:19
IEEE于1999年批准802.1q(Virtual Local Area Network)作为802.1d(Spanning Tree Protocol)连网标准修正的一部分。 常见概念 VID :VLAN ID,占12位取值1-4094。数据帧携带VID一致时可相互通讯。 PVID :Port-base VLAN ID,标识交换端口对不带Tag字段的帧处理形式按PVID号进行进出交换机操作。 Tagged :可以简单理解对数据包增加802.1Q标记字段的过程。 TRUNK PORT :思科将允许多VLAN共同通行的端口称为TRUNK端口,链路为TRUNK链路。Trunk端口可以理解为Tagged Port。 Untagged :数据帧去掉802.1QVLAN标签字段的过程。 Access PORT :收发Untagged数据帧,且对于进入交换机的数据包,增加VLAN Tag字段。 数据帧结构 在数据帧封装格式中加入字段进行限制广播范围。具体为源MAC地址后新增Tag字段,该Tag信息携带了帧类型、用户VLAN编号、用户优先级和校验和等信息。 TPID-0x8100(2Byte) Tag Protocol Identifier是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。TPID包含了一个固定的值0x8100。 注意:TPID厂家可以自定义值,当不同厂商对接时

Scrum 学习笔记

我怕爱的太早我们不能终老 提交于 2020-03-06 18:53:58
Scrum 学习笔记 敏捷火了非常长一段时间了,可是一直没有机会实践,如今開始组队实践了,哈哈,先好好研习下规则~~ 什么是 scrum Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包含若干个小的跌代周期,每一个小的的跌代周期称为一个 Sprint,每一个 Sprint 的建议长度2到4周。在 Scrum 中,使用产品 Backlog 来管理产品或项目的需求,产品 backlog 是一个依照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum 的开发团队总是先开发的是对客户具有较高价值的需求。在每一个 Sprint 中,Scrum 开发团队从产品Backlog中挑选最有价值的需求进行开发。Sprint 中挑选的需求经过 Sprint 计划会议上的分析、讨论和估算得到一个 Sprint 的任务列表,我们称它为 Sprint backlog。在每一个迭代结束时,Scrum 团队将交付潜在可交付的产品增量。 敏捷价值观之 敏捷四宣言 • 个体与交互重于过程和工具 • 可用的软件重于完备的文档 • 客户协作重于合同谈判 • 响应变化重于遵循计划 敏捷价值观之 敏捷十二原则 • 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。 • 欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。 •

java并发简介

。_饼干妹妹 提交于 2020-03-06 18:51:25
  有的时候由于数据的同时访问,导致服务器不堪重负,这个时候就需要高并发的介入,这篇文章将会从线程,控制,监视器三个大方面来简单地介绍java的并发。 <!--原文请参考http://ifeve.com/java-concurrency-constructs/--> 线程 线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源)。java.lang.Thread对象负责统计和控制这种行为。 每个程序都至少拥有一个线程-即作为Java虚拟机(JVM)启动参数运行在主类main方法的线程。在Java虚拟机初始化过程中也可能启动其他的后台线程。这种线程的数目和种类因JVM的实现而异。然而所有用户级线程都是显式被构造并在主线程或者是其他用户线程中被启动。 这里对Thread类中的主要方法和属性以及一些使用注意事项作出总结。这些内容会在这本书(《Java Concurrency Constructs》)上进行进一步的讨论阐述。Java语言规范以及已发布的API文档中都会有更详细权威的描述。 构造方法 Thread类中不同的构造方法接受如下参数的不同组合: 一个Runnable对象,这种情况下,Thread.start方法将会调用对应Runnable对象的run方法。如果没有提供Runnable对象

优先队列priority_queue 用法详解

泪湿孤枕 提交于 2020-03-06 07:10:20
http://www.cnblogs.com/void/archive/2012/02/01/2335224.html 优先队列priority_queue 用法详解 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序 每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。 例如:我们常用的操作就是对数据排序, 优先队列默认的是数据大的优先级高 所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。 用法: 示例:将元素5,3,2,4,6依次push到优先队列中,print其输出。 1. 标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。 priority_queue<int> pq; 通过<操作符可知在整数中元素大的优先级高。 故示例1中输出结果为: 6 5 4 3 2 2. 数据越小,优先级越高 priority_queue<int, vector<int>, greater<int> >pq; 其中 第二个参数为容器类型。 第二个参数为比较函数。 故示例2中输出结果为:2 3 4 5 6 3. 自定义优先级,重载比较符号 重载默认的 < 符号 struct node{ friend bool operator< (node n1, node n2) { return n1

Java编程的逻辑 (46) - 剖析PriorityQueue

≡放荡痞女 提交于 2020-03-06 07:02:15
本系列文章经补充和完善,已修订整理成书《Java编程的逻辑》,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接 : http://item.jd.com/12299018.html 上节 介绍了堆的基本概念和算法,本节我们来探讨堆在Java中的具体实现类 - PriorityQueue。 我们先从基本概念谈起,然后介绍其用法,接着分析实现代码,最后总结分析其特点。 基本概念 顾名思义,PriorityQueue是优先级队列,它首先实现了队列接口(Queue),与 LinkedList 类似,它的队列长度也没有限制,与一般队列的区别是,它有优先级的概念,每个元素都有优先级,队头的元素永远都是优先级最高的。 PriorityQueue内部是用堆实现的,内部元素不是完全有序的,不过,逐个出队会得到有序的输出。 虽然名字叫优先级队列,但也可以将PriorityQueue看做是一种比较通用的实现了堆的性质的数据结构,可以用PriorityQueue来解决适合用堆解决的问题,下一节我们会来看一些具体的例子。 基本用法 Queue接口 PriorityQueue实现了Queue接口,我们在 LinkedList一节 介绍过Queue,为便于阅读,这里重复下其定义: public interface Queue<E> extends

Java多线程与JUC——04控制线程

北慕城南 提交于 2020-03-05 21:46:41
Java的线程支持提供了一些工具方法,通过这些方法可以很好地控制线程的执行。 Join线程 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并发执行变为串行执行。具体看代码: public class ThreadTest1 { /** * join的意思是使得放弃当前线程的执行,并返回对应的线程,例如下面代码的意思就是: * 程序在 main 线程中调用t1线程的join方法,则main线程放弃cpu控制权,并返回t1线程继续执行直到线程t1执行完毕 * 所以结果是t1线程执行完后,才到主线程执行,相当于在main线程中同步t1线程,t1执行完了,main线程才有执行的机会 */ public static void main ( String [ ] args ) { //main方法是jvm进程的默认的主线程 System . out . println ( "主线程的名字:" + Thread . currentThread ( ) . getName ( ) ) ; //在main线程中创建一个新的线程,并且启动 Thread t1 = new MyThread ( "子线程1" ) ; t1 . start ( ) ; try { //调用了 t1 的 join() 方法,他会将“主线程”给挂起来,使主线程堵塞,让子线程 t1 继续执行, //当

log4j2 配置文件

旧街凉风 提交于 2020-03-05 18:06:39
<?xml version="1.0" encoding="UTF-8"?> <!-- configuration 属性 monitorInterval: 置配置文件的动态加载时间(s),在程序运行过程中,如果修改配置文件,程序会随之改变。 status: 设置 log4j 日志框架内部输出的日志级别 日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> < configuration status = " error " monitorInterval = " 5 " > <!--配置变量--> < Properties > <!-- 配置输出格式,启动控制台颜色输出需要在 JVM 中设置:-Dlog4j.skipJansi=false --> < property name = " LOG_PATTERN " value = " %d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level} [%t] %-36c{36} - %m%n " /> <!-- 定义日志存储的路径 --> < property name = " FILE_PATH " value = " 更换为你的日志路径 " /> < property name = " FILE_NAME

操作系统中的调度问题

二次信任 提交于 2020-03-05 13:31:36
1、调度时机:创建新的进程后、运行进程退出时、进程因为I/o或其他原因阻塞时、发生I/o中断(完成了i/o的阻塞进程变为了就绪进程) 2、调度算法应用环境: 批处理系统,交互式系统,实时系统, 不同的系统有不同的调度策略 3、批处理系统: 先来先服务:非抢占式 当正在运行的进程被阻塞时,队列中的第一个进程就接着运行,在被阻塞的进程变为就绪时,像一个新来的作业一样,拍到队列的末尾。 优缺点:利于长作业,不利于短作业。造成处理机和I/O设备得不到充分利用。 最短作业优先:适用于运行时间可以预知的非抢占式批处理调度算法。 优缺点:有利于短作业,长作业因得不到资源饿死。 最短剩余时间优先:进程运行时间必须提前掌握,调度程序总是选择剩余运行时间最短的进程运行,抢占式调度算法。但是这种调度策略必须记录进程过去被服务的时间,增加了开销 优缺点:开销大,不利于长进程。 4、交互式系统中的调度: 时间片轮转算法:时间片设置过短,会导致过多的进程切换,降低cpu效率。如果设置太长有可能引起对短的交互请求的响应时间变长。时间片一般设置到20ms-50ms 优先级调度算法:进程的优先级与进程的紧迫度有关,分为动态优先级和静态优先级,为了防止高优先级无休止的运行下去,调度程序可以在每个时钟中断降低当前进程的优先级。如果这个动作导致该进程的优先级地狱次高优先级的进程,则进程切换。 多级队列调度算法

css优先级规则

♀尐吖头ヾ 提交于 2020-03-05 05:58:28
一、在同一样式表内 1.权值相同   就近原则(离被设置元素越近优先级越高) 2.权值不同   根据权值来判断css样式   哪种css样式权值高,就使用哪种样式 二、选择器权值 标签选择器:权值为1 类选择器和伪类:权值为10 id选择器:权值为100 通配符选择器:权值为10 行内样式:权值为1000 三、权值规则 统计不同选择器的个数 每类选择器的个数乘以相应权值 把所有的值相加得出选择器的权值 四、!important规则( 优先级最高 ) 可调整样式规则的优先级 添加在样式规则之后,中间用空格隔开 div{color:red !important;} 五、优先级   1、css使用方法的优先级     行内样式 > 内部样式 > 外部样式     (注:link链入外部样式和style内部样式优先级,取决于先后顺序)   2、样式表中优先级     id选择器 > class选择器 > 标签选择器 > 通配符 来源: https://www.cnblogs.com/zwtqf/p/9036130.html

声明优先级规则

与世无争的帅哥 提交于 2020-03-05 05:58:15
Question:(1) char * const *(*p)()想要表达的意思是?      (2) const char* const *p想要表达的意思又是? 想要回答上述两个问题,就要先来看一下C/C++语言声明的优先级规则吧 A  声明从它的名字开始读取,然后按照优先级顺序依次读取。 B  优先级从高到低依次是:   B.1  声明中被括号括起来的那部分   B.2  后缀操作符:       括号()表示这是一个函数,而放括号[]表示这是一个数组。   B.3  前缀操作符:       星号*表示“指向...的指针”。 C  如果const和/或volatie关键字的后面紧跟类型说明符(如int char等),那么它作用于类型说明符。在其他情况下,它作用于它作便紧邻的指针星号。 按照上述规则,我们来分析: (1)char * const *(*p)()   首先找到标识符p,按照规则B.1,p是一指针;接着按照规则B.2,p是一函数指针;按照规则B.3,p是一函数指针,该函数返回值为指针类型;依照规则C,const后面没有类型说明符,因此它是一个const pointer to char,即指向char类型的常指针。   总结:p是一函数指针,它指向一个函数,该函数返回值为一指针,该指针指向char类型的常量指针 (2)const char* const *p