对NIO的理解 个人单方面认为,NIO与BIO的最大区别在于主动和被动,使用BIO的方式需要等待被调用方返回数据,很明显此时调用者是被动的。 举个例子 阻塞IO 假设你是一个胆小又害羞的男孩子,你约了隔壁测试的妹子,但你并不敢主动约会,所以你把自己的手机号码给她,并暗示她想要约会的时候打电话给你。很 ...
分类:
其他好文 时间:
2020-06-07 14:34:06
阅读次数:
68
【1】基础应用——单次调用const fs = require('fs');//Promise初始化为:等待状态 pendinglet promise = new Promise((resolve, reject) => {console.log('start...');//异步任务fs.readF... ...
分类:
其他好文 时间:
2020-06-07 11:14:04
阅读次数:
82
##1.单线程模型 单线程模型指的是,JavaScript只能在一个线程上运行,也就是说只能同时指向一个任务,其他任务都必须在后面排队等待。**注意:**虽然JavaScript只在一个线程上运行,但并不代码JavaScript引擎只有一个线程。事实上,JavaScript引擎有多个线程,单个脚本只 ...
分类:
编程语言 时间:
2020-06-07 10:56:43
阅读次数:
84
multiprocessing-Pool 进程池 进程池概念:定义一个池子,在里面放上固定数量的进程,有需求来了,就拿一个池中的进程来处理任务,等到处理完毕,进程并不关闭,而是将进程再放回进程池中继续等待任务。如果有很多任务需要执行,池中的进程数量不够,任务就要等待之前的进程执行任务完毕归来,拿到空 ...
分类:
系统相关 时间:
2020-06-06 21:35:41
阅读次数:
91
摘要 join()函数的作用是让主线程的等待该子线程完成,然后主线程再继续执行。这种情况下,子线程可以安全的访问主线程中的资源。一个子线程只能调用join()和detach()中的一个,且只允许调用一次。可以调用joinable()来判断是否可以成功调用join()或detach()。 1 #inc ...
分类:
编程语言 时间:
2020-06-06 16:55:37
阅读次数:
74
cat:连接文件并显示 -n:显示行号 -E:显示换行符 tac:连接文件并从尾部开始显示 more:分屏显示 less:和man命令一样用法 head -n:显示前n行 tail -n:显示后n行 -f:查看文件尾部不退出,等待显示后续追加至此文件的新内容 cut:显示文本中的某些字段 格式:cu ...
分类:
系统相关 时间:
2020-06-06 13:04:46
阅读次数:
100
一 基本概念 IO(BIO)和NIO的区别:其本质就是阻塞和非阻塞的区别。 阻塞:应用程序在获取网络数据的时候,如果网络传输数据很慢,那程序就一直等着,直到传输完毕为止。 非阻塞:应用程序直接可以获取已经准备就绪的数据,无需等待。 IO为同步阻塞形式,NIO为同步非阻塞,到JDK1.7,NIO为异步 ...
分类:
编程语言 时间:
2020-06-06 12:51:26
阅读次数:
81
TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)第二次握手:服 ...
分类:
其他好文 时间:
2020-06-06 11:17:49
阅读次数:
50
多线程:到底什么时候该用多线程 一、高并发 系统接受实现多用户多请求的高并发时,通过多线程来实现。 二、线程后台处理大任务 一个程序是线性执行的。如果程序执行到要花大量时间处理的任务时,那主程序就得等待其执行完才能继续执行下面的。那用户就不得不等待它执行完。 这时候可以开线程把花大量时间处理的任务放 ...
分类:
编程语言 时间:
2020-06-06 10:48:23
阅读次数:
80
RedisLock——让 Redis 分布式锁变得简单 1. 项目介绍 该项目主要简化了使用 redis 分布式事务所的操作,实现傻瓜式加锁,释放锁的操作,并优雅的实现了等待锁释放的操作。等待锁释放的过程主要是使用了redis的监听功能,所以在使用该项目前,要确保redis已经开启了key事件监听, ...
分类:
其他好文 时间:
2020-06-06 10:37:25
阅读次数:
59