1、阻塞IO模型 传统的IO模型,即在数据读写的过程中会发生阻塞现象。当用户线程发出IO请求之后,内核回去查看数据是否就绪,如果没有就绪就等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回数据给用户线程,用户线程才解除阻塞状态。典型的阻塞 ...
分类:
编程语言 时间:
2020-09-18 03:12:36
阅读次数:
41
写在前面 在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢?今天,我们就一起来探讨下这个问题。 再造轮子? 既然JVM中提供了syn ...
分类:
编程语言 时间:
2020-09-18 02:25:58
阅读次数:
29
1.理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 站在使用者的角度 ...
分类:
编程语言 时间:
2020-09-17 19:47:20
阅读次数:
36
总结 同步 vs 异步 所谓同步/异步,关注的是能不能同时开工。 同步->指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 异步->是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候,用户进程会得到IO完成的通知 阻塞 vs 非阻塞 所谓阻塞/非阻塞,关注的是 ...
分类:
编程语言 时间:
2020-09-10 22:37:19
阅读次数:
44
SpringWebClientvs.RestTemplate点击左上角蓝字,关注“锅外的大佬”专注分享国外最新技术内容1.简介本教程中,我们将对比Spring的两种Web客户端实现——RestTemplate和Spring5中全新的Reactive替代方案WebClient。阻塞式vs非阻塞式客户端Web应用中,对其他服务进行HTTP调用是一个很常见的需求。因此,我们需要一个Web客户端工具。2.
分类:
编程语言 时间:
2020-08-29 15:22:30
阅读次数:
60
前言如果按照用途与特性进行粗略的划分,JUC包中包含的工具大体可以分为6类:执行者与线程池并发队列同步工具并发集合锁原子变量在【并发系列】中,主要讲解了执行者与线程池,同步工具,锁,在分析源码时,或多或少的提及到了「队列」,队列在JUC中也是多种多样存在,所以本文就以「远看」视角,帮助大家快速了解与区分这些看似「杂乱」的队列并发队列Java并发队列按照实现方式来进行划分可以分为2种:阻塞队列非阻塞
分类:
编程语言 时间:
2020-08-29 15:22:08
阅读次数:
54
1.简介三月份已经介绍过R2DBC,它是一种异步的、非阻塞的关系式数据库连接规范。尽管一些NoSQL数据库供应商为其数据库提供了反应式数据库客户端,但对于大多数项目而言,迁移到NoSQL并不是一个理想的选择。这促使了一个通用的响应式关系数据库连接规范的诞生。作为拥有庞大用户群的关系式数据库MySQL也有了反应式驱动,不过并不是官方的。但是Spring官方将其纳入了依赖池,说明该类库的质量并不低。所
分类:
数据库 时间:
2020-08-24 16:44:43
阅读次数:
77
也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO ...
分类:
编程语言 时间:
2020-08-19 19:20:06
阅读次数:
69
Lock显式锁是一个接口 Lock方式来获取锁支持中断、超时不获取、是非阻塞的 提高了语义化,哪里加锁,哪里解锁都得写出来 Lock显式锁可以给我们带来很好的灵活性,但同时我们必须手动释放锁 支持Condition条件对象 允许多个读线程同时访问共享资源 Synchronized锁经过优化之后,现在 ...
分类:
其他好文 时间:
2020-08-19 19:17:57
阅读次数:
76
首先要明白几个名词(概念)。 Node.js: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。 npm: npm ...
分类:
Web程序 时间:
2020-08-08 17:44:25
阅读次数:
80