last

linux 时间相关的一些总结

陌路散爱 提交于 2020-01-11 00:14:48
仅作为内核代码中时间管理模块的笔记,3.10内核,很乱,不喜勿喷。 先有time,后有timer。 常用的time结构有哪些?除了大名鼎鼎的jiffies和jiffies64之外,还有常用的一些结构如下: ktime_t 经常用在timer中, union ktime { s64 tv64; #if BITS_PER_LONG != 64 && !defined(CONFIG_KTIME_SCALAR) struct { # ifdef __BIG_ENDIAN s32 sec, nsec; # else s32 nsec, sec; # endif } tv; #endif }; typedef union ktime ktime_t; /* Kill this */ 经常用在fs中的timespec,低一点精度的timeval,以及时区结构timezone。主要用来做时间戳等。 struct timespec { __kernel_time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; struct timeval { __kernel_time_t tv_sec; /* seconds */ __kernel_suseconds_t tv_usec; /* microseconds */ };

MMM高可用架构

◇◆丶佛笑我妖孽 提交于 2020-01-10 17:38:01
MMM高可用架构 MMM(Master-Master replication manager for MySQL) 是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,可以说是mysql主主复制管理器。虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。 MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移

算法学习之一,排序算法

烈酒焚心 提交于 2020-01-10 15:55:01
Java排序算法的框架 1 public class Sort01 { 2 public static void sort(Comparable[] a){ 3 //排序算法 4 } 5 public static boolean less(Comparable v,Comparable w){ 6 return v.compareTo(w)<0; 7 } 8 public static void exch(Comparable[] a,int i,int j){ 9 Comparable t=a[i]; 10 a[i]=a[j]; 11 a[j]=t; 12 } 13 public static void show(Comparable[] a){ 14 for(int i=0;i<a.length;i++){ 15 System.out.print(a[i]+" "); 16 } 17 System.out.println(); 18 } 19 public static boolean isSorted(Comparable[] a){ 20 for(int i=1;i<a.length;i++) 21 if(less(a[i],a[i-1])) return false; 22 return true; 23 } 24 25 public static void main

VINS_Fusion代码注释(三)--------------------图像处理部分-----------------------------

丶灬走出姿态 提交于 2020-01-10 13:14:20
VINS_Fusion代码注释(三)--------------------图像处理部分----------------------------- VINS_Fusion程序注释(一) rosNodeTest.cpp VINS_Fusion代码注释(二)---------IMU预积分部分--------------- 1、具体程序处理顺序 rosNodeTest.cpp(sync_process)->inputimage()->processMeasurements()->分为两部分 a.processIMU() //上次博客注释 b.processImage() //这次要讲的图像处理部分 2、具体代码 void Estimator::processImage(const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &image, const double header) { ROS_DEBUG("new image coming ------------------------------------------"); ROS_DEBUG("Adding feature points %lu", image.size()); //关键帧的判断依据是rotation

java数据结构之LinkedList

我只是一个虾纸丫 提交于 2020-01-10 12:28:57
一、LinkedList源码注释 //LinkedList源码 jdk版本1.8.0_121 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable { transient int size = 0; /** * 指向第一节点 * first和last要么都为null,要么都不为null。不要把节点node和节点的item混淆 */ transient Node<E> first; /** * 指向最后一个节点 */ transient Node<E> last; /** * 构造一个空的LinkedList */ public LinkedList() { } /** * 通过集合来构建LinkedList */ public LinkedList(Collection<? extends E> c) { this(); addAll(c); } /** * 将元素放在第一个位置 * 具体做法就是创建一个新的节点newNode,newNode的item设置为该元素,然后newNode的next指向原来的第一个节点 * 将first指向新的节点,如果是第一次添加节点就将last也指向该节点

leetcode 925. Long Pressed Name

拈花ヽ惹草 提交于 2020-01-10 02:32:54
判定是否长按 var isLongPressedName = function (name, typed) { var i = 1, j = 0, n = name.length, m = typed.length; var last = name[0], iCount = 1 while (i < n || j < m) { var el = name[i]; if (el !== last) { if (iCount !== 0) { let jCount = 0 // console.log("j", j, m) while (j < m) { console.log("内循环", last, typed[j], j) if (typed[j] !== last) { break //跳到外循环 } j++ jCount++ } if (jCount < iCount) { return false } if (j == m && i < n) { return false } } last = el iCount = 1 } else { console.log("累加", el) iCount++ } i++ } return true }; console.log(isLongPressedName("alex", "aaleex")) console.log

LinkedList源码分析

↘锁芯ラ 提交于 2020-01-07 08:40:27
简介 LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的synchronizedList方法: List list=Collections.synchronizedList(new LinkedList(...)); 内部结构分析 如下图所示: 看完了图之后,我们再看LinkedList类中的一个内部私有类Node就很好理解了: private static class Node<E> { E item;//节点值 Node<E> next;//后继节点 Node<E> prev;//前驱节点 Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } 这个类就代表双端链表的节点Node。这个类有三个属性,分别是前驱节点,本节点的值,后继结点。 LinkedList源码分析 构造方法 空构造方法: public LinkedList() { }

关于db2获取月份的第一天或者最后一天的方式方法

。_饼干妹妹 提交于 2020-01-07 07:21:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 今天遇到一个需要根据日期参数获取月份的第一天 最后一天 的情况,发现db2自身函数还是很强大的 method: SELECT LAST_DAY(current date+1 month) FROM sysibm.sysdummy1; method: values(LAST_DAY(current date + 1 month)) ; values(LAST_DAY(sysdate - 1 months)); -- 上月最后一天 values(LAST_DAY(sysdate - 2 months) + 1 day); -- 上月第一天 values(LAST_DAY(sysdate)); -- 当月最后一天 values(LAST_DAY(sysdate - 1 months) + 1 day); -- 当月第一天 DB2 月份的最后一天 方法一 SELECT LAST_DAY(current date+1 month) FROM sysibm.sysdummy1; 方法二 values(LAST_DAY(current date + 1 month)) ; 其它 values(LAST_DAY(current date - 1 months)); -- 上月最后一天 values(LAST_DAY

Nginx 伪静态Rewrite,重定向Location配置总结(转)

情到浓时终转凉″ 提交于 2020-01-07 06:15:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到。 多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考): 首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。 例子,有如下匹配规则: location = / { #规则A } location = /login { #规则B } location ^~ /static/ { #规则C } location ~ \.(gif|jpg|png|js|css)$ { #规则D } location ~* \.png$ { #规则E } location !~ \.xhtml$ { #规则F } location

oracle及Java日期格式

微笑、不失礼 提交于 2020-01-07 04:27:37
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如果想转化为2005-07-05 的格式,则需要使用类 SimpleDateFormat SimpleDateFormat formatt= new SimpleDateFormat("yyyy-MM-dd") ; Date date =new Date(); System.out.println(formatt.format(date)); 则打印出的格式为:2005-07-07 SimpleDateFormat formatt= new SimpleDateFormat("yyyy-MMMM-dd") ; Date date =new Date(); System.out.println(formatt.format(date)); 则打印出的格式为:2005-七月-07 --------------------------- Oracle的默认日期格式 SQL> select sysdate from dual ; SYSDATE ---------- 07-7月-05 用to_char转化为yyyy-mm-dd的格式 SQL> select to_char(sysdate,'yyyy-mm-dd') Time from dual ; TIME ---------- 2005-07-07