毫秒

51单片机流水灯

安稳与你 提交于 2020-01-09 23:54:49
三种方法实现流水灯 1.位输出操作 流程图 Created with Raphaël 2.2.0 开始 开发板初始化 LED0亮一秒后熄灭 LED1亮一秒后熄灭 LED2亮一秒后熄灭 LED3亮一秒后熄灭 LED4亮一秒后熄灭 LED5亮一秒后熄灭 LED6亮一秒后熄灭 LED7亮一秒后熄灭 代码 //位操作输出 # include <reg52.h> # define uint unsigned int # define on 0 # define off 1 sbit LED0 = P1 ^ 0 ; sbit LED1 = P1 ^ 1 ; sbit LED2 = P1 ^ 2 ; sbit LED3 = P1 ^ 3 ; sbit LED4 = P1 ^ 4 ; sbit LED5 = P1 ^ 5 ; sbit LED6 = P1 ^ 6 ; sbit LED7 = P1 ^ 7 ; void delay ( uint xms ) //延时约xms毫秒 { uint i , j ; for ( i = xms ; i > 0 ; i -- ) for ( j = 112 ; j > 0 ; j -- ) ; //分号代表跑空,for语句不需要分号,112次表示一毫秒 } void main ( ) { while ( 1 ) { LED0 = on ; //P1^0=0;

fiddler模拟弱网

依然范特西╮ 提交于 2020-01-08 15:39:45
点击Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler ScriptEditor 说明: request-trickle-delay 中的值代表每KB的数据被上传时会被延时多少毫秒;如果你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改成10。 response-trickle-delay 则对应下载时每KB的数据会被延时多少毫秒;如果你要模拟下载速度100KBps的网络,那下载延迟就是1KB/100KBps=0.01s=10ms,就改成10。 来源: https://www.cnblogs.com/free-1124/p/12166888.html

分布式唯一ID:雪花ID Snowflake .Net版

ε祈祈猫儿з 提交于 2020-01-07 15:47:01
先抄个雪花ID介绍,雪花算法: 雪花算法的原始版本是 scala版 ,用于生成分布式ID(纯数字,时间顺序),订单编号等。 自增ID:对于数据敏感场景不宜使用,且不适合于分布式场景。 GUID:采用无意义字符串,数据量增大时造成访问过慢,且不宜排序。 算法描述: 最高位是符号位,始终为0,不可用。 41位的时间序列,精确到毫秒级,41位的长度可以使用69年。时间位还有一个很重要的作用是可以根据时间进行排序。 10位的机器标识,10位的长度最多支持部署1024个节点。 12位的计数序列号,序列号即一系列的自增id,可以支持同一节点同一毫秒生成多个ID序号,12位的计数序列号支持每个节点每毫秒产生4096个ID序号。 好了,回归本人自己介绍:时钟回拨 雪花ID严重依赖系统当前时间,当系统时间被人为反后调整时,算法会出问题,可能会出重复ID.Snowflake原算法是在检测到系统时间被回调后直接抛异常.本代码在时钟回拨后,会将生成的ID时间戳停留在最后一次时间戳上,等待系统时间追上后即可以避过时钟回拨问题. 这种处理方式的优点是时钟回拨后不会异常,能一直生成出雪花ID,但缺点是雪花ID中的时间戳不是系统的当前时间,会是回拨前的最后记录的一次时间戳,但相差也不大.不知道有没有什么生产系统会对这个时间戳要求非常严格,无法使用这种补救方式的? 当然停掉系统后的时钟回拨是无法处理的

睡眠数毫秒

戏子无情 提交于 2020-01-06 19:11:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我知道POSIX sleep(x) 函数使程序休眠x秒。 在C ++中是否有使程序休眠x 毫秒 的功能? #1楼 在C ++ 11中,可以使用标准库工具来执行此操作: #include <chrono> #include <thread> std::this_thread::sleep_for(std::chrono::milliseconds(x)); 清晰易读,无需再猜测 sleep() 函数采用的单位。 #2楼 #include <windows.h> 句法: Sleep ( __in DWORD dwMilliseconds ); 用法: Sleep (1000); //Sleeps for 1000 ms or 1 sec #3楼 为什么不使用time.h库? 在Windows和POSIX系统上运行: #include <iostream> #include <time.h> using namespace std; void sleepcp(int milliseconds); void sleepcp(int milliseconds) // Cross-platform sleep function { clock_t time_end; time_end = clock() +

缓冲流---Day33

柔情痞子 提交于 2020-01-06 14:41:29
缓冲流:   概念:缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流   分类:     1.字节缓冲流:BufferedInputStream , BufferedOutputStream     2.字符缓冲流:BufferedReader , BufferedWriter   基本原理:缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。 字节缓冲流:   构造方法:     public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。     public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流。 1 package demo_summary.buffer_flow; 2 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 6 public class ByteStream { 7 /** 8 * public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。 9 * public

Java中的日期和时间

戏子无情 提交于 2020-01-04 02:39:46
以下内容引用自 http://wiki.jikexueyuan.com/project/java/date-time.html : Java在java.util包中提供了Date类,这个类封装了当前的日期和时间。 Date类支持两种构造函数。第一个构造函数初始化对象的当前日期和时间。 Date() 下面的构造函数接收一个参数等于自1970年1月1日午夜起已经过的毫秒数 Date(long millisec) 一旦有一个可用的日期对象,可以调用以下任何一种支持的方法使用时间: 方法 描述 boolean after(Date date) 如果调用Date对象包含或晚于指定的日期则返回true,否则,返回false。 boolean before(Date date) 如果调用Date对象包含或早于日期指定的日期返回true,否则,返回false。 Object clone( ) 重复调用Date对象。 int compareTo(Date date) 调用对象的值与日期比较。如果这两个值相等返回0。如果调用对象是早于日期返回一个负值。如果调用对象迟于日期返回正值。 int compareTo(Object obj) 以相同的compareTo(Date)操作 如果obj是一个类日期。否则,它会抛出一个ClassCastException。 boolean equals(Object

分布式ID生成解决方案

不打扰是莪最后的温柔 提交于 2020-01-02 09:05:56
分布式ID生成解决方案 1.1 UUID 这是常见的方式。可以利用数据库也可以利用程序生成,一般来说全球唯一。 优点: 1)简单,代码方便。 2)生成ID性能非常好,基本不会有性能问题。 3)全球唯一,在遇见数据迁移,系统数据合并,或者数据库变更等情况下,可以从容应对。 缺点: 1)没有排序,无法保证趋势递增。 2)UUID往往是使用字符串存储,查询的效率比较低。 3)存储空间比较大,如果是海量数据库,就需要考虑存储量的问题。 4)传输数据量大 5)不可读。 1.2 Redis 当使用数据库来生成ID性能不够要求的时候,我们可以尝试使用Redis来生成ID。这主要依赖于Redis是单线程的,所以也可以用生成全局唯一的ID。可以用Redis的原子操作INCR和INCRBY来实现。 优点: 1)不依赖于数据库,灵活方便,且性能优于数据库。 2)数字ID天然排序,对分页或者需要排序的结果很有帮助。 缺点: 1)如果系统中没有Redis,还需要引入新的组件,增加系统复杂度。 ​ 2)需要编码和配置的工作量比较大。 ​ 3)网络传输造成性能下降。 1.3 开源算法snowflake snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID)

计算两个日期之间的天数

China☆狼群 提交于 2020-01-02 00:53:39
以“yyyy-MM-dd”格式为例,现在有两个日期,分别为“2006-01-01”,“2007-05-20”。 1、调用Date.parser()方法,将字符串格式的时间戳转换为Date类型时间对象; 2、调用DateObject.getTime()方法获取两个Date的毫秒数; 3、计算两个毫秒数的差; 4、使用Math.abs()方法,取差值的绝对值; 5、将毫秒数转换为天数,也就是用毫秒数除以(1000*60*60*24),最终得到的结果用parserInt()转为整型; 6、计算结束。 示例代码如下: function getDateDiff(startDate, endDate) { // 将字符串转为Date对象,并获取毫秒数; var startTime = new Date(Date.parse(startDate)).getTime(); var endTime = new Date(Date.parse(endDate)).getTime(); // 计算毫秒数的差,并换算成天数; var diff = Math.abs(startTime - endTime); var days = parseInt(diff / (1000 * 60 * 60 * 24), 10); return days; } 来源: https://www.cnblogs.com

面试题:在浏览器输入url后发生了什么整理

痞子三分冷 提交于 2019-12-30 22:56:15
W3C对浏览器的实现标准如下图所示,回答了该问题 重定向 缓存 DNS解析 TCP连接 HTTP请求 HTTP响应 渲染页面 装载 下面是详细介绍 浏览器实现标准 performance.timing属性介绍 属性说明: 是一个无符号long long 型的毫秒数 表示某个时间的unix时间戳 PerformanceTiming.navigationStart :浏览器上下文上一个页面unload的时间戳,如果没有上一个文档,这个值会和PerformanceTiming.fetchStart相同 PerformanceTiming.unloadEventStart :unload事件抛出时的时间戳,如果没有上一个文档或者上一个文档与重定向中的一个不同源 这个值回返回0 PerformanceTiming.unloadEventEnd : unload事件结束的时间戳,如果没有上一个文档或者上一个文档与重定向的下一个文档不同源 这个值回返回0 PerformanceTiming.redirectStart :第一个HTTP重定向开始时的UNIX时间戳。如果没有重定向,或者重定向中的一个不同源,这个值会返回0 PerformanceTiming.redirectEnd :最后一个HTTP重定向完成时的UNIX时间错,如果没有重定向,或者重定向中的一个不同源,这个值会返回0

I/O流——字节流

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-30 22:32:22
流的概念 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以使文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。 流的分类 ① 流按其流向分为“输入流”和“输出流”。 ② 流按数据传输单位分为“字节流”和“字符流”。 a) “字节流”用来读写8位二进制的字节。 b) “字符流”用来读写16位二进制字符。 ③ 流按功能分为“节点流”和“过滤流”。 a) “节点流”用于直接操作目标设备的流。例如:磁盘或一块内存区域。 b) “过滤流”是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。 字节流 字节流类用于向字节流读取8位二进制的字节。一般地,字节流主要用于读写诸如图像或声音等二进制数据。 字节流类以InputStream和OutputStream为顶层类。它们都是抽象类。 一、InputStream ① InputStream是定义了字节输入流的抽象类。 ② InputStream中定义的方法 a) public abstract int read() b) public int read(byte[] b) c) public int read(byte[] b,int off,int len) d) public long