E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
busybox源码剖析
7.5 集群服务间通信之Routing Mesh
http请求来获取主机的hostnamedockerservicecreate--namewhoami-p8000:8000--networkswarm-overlay-djwilder/whoami创建
busybox
·
2021-03-16 11:30
docker
7.3 Service的创建维护和水平扩展
创建一个service在swarm模式下,基本上就不会使用dockerrun了#swarm-manager节点dockerservicecreate--name
busybox
busybox
/bin/sh-c"whiletrue
·
2021-03-16 11:56
dockerswarm集群
7.5 集群服务间通信之Routing Mesh
http请求来获取主机的hostnamedockerservicecreate--namewhoami-p8000:8000--networkswarm-overlay-djwilder/whoami创建
busybox
·
2021-03-16 11:27
docker
7.3 Service的创建维护和水平扩展
创建一个service在swarm模式下,基本上就不会使用dockerrun了#swarm-manager节点dockerservicecreate--name
busybox
busybox
/bin/sh-c"whiletrue
·
2021-03-16 11:23
dockerswarm集群
Vue.js
源码剖析
-模板编译
模板编译简介模板编译的主要目的是将模板(template)转换为渲染函数(render)titlesomecontent渲染函数renderh('div',[h('h1',{on:{click:this.handler}},'title'),h('p','somecontent')])模板编译的作用Vue2.x使用VNode描述视图及各种交互,用户自己编写VNode比较复杂用户只需要编写类似HTM
翔子丶
·
2021-03-15 19:30
4.6 容器网络之host和none
none网络创建一个name为test4的容器,network为nonedockerrun-d--nametest4--networknone
busybox
/bin/sh-c"whiletrue;dosleep3600
·
2021-03-15 03:08
docker
4.3 Docker bridge0详解
查看虚拟机运行状态为了演示更清晰直观,暂时先移除了test2容器dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5b567458c87c
busybox
·
2021-03-14 22:11
docker
4.6 容器网络之host和none
none网络创建一个name为test4的容器,network为nonedockerrun-d--nametest4--networknone
busybox
/bin/sh-c"whiletrue;dosleep3600
·
2021-03-14 22:41
docker
4.3 Docker bridge0详解
查看虚拟机运行状态为了演示更清晰直观,暂时先移除了test2容器dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES5b567458c87c
busybox
·
2021-03-14 22:40
docker
Redis
源码剖析
之内存淘汰策略(Evict)
Redis作为一个成熟的数据存储中间件,它提供了完善的数据管理功能,比如之前我们提到过的数据过期和今天我们要讲的数据淘汰(evict)策略。在开始介绍Redis数据淘汰策略前,我先抛出几个问题,帮助大家更深刻理解Redis的数据淘汰策略。何为数据淘汰,Redis有了数据过期策略为什么还要有数据淘汰策略?淘汰哪些数据,有什么样的数据选取标准?Redis的数据淘汰策略是如何实现的?何为Evict我先来
·
2021-03-14 21:49
java
Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 Docker
DockerHub中有许多随时可用的常见镜像,其中就包括
busybox
,可以用来运行简单的命令,例如:echo"Helloworld"。
满赋诸机
·
2021-03-14 15:15
Vue.js
源码剖析
-虚拟 DOM
什么是虚拟DOM虚拟DOM(VirtualDOM)是使用JavaScript对象来描述DOM,虚拟DOM的本质就是JavaScript对象,使用JavaScript对象来描述DOM的结构。应用的各种状态变化首先作用于虚拟DOM,最终映射到DOMVue.js中的虚拟DOM借鉴了Snabbdom,并添加了一些Vue.js中的特性,例如:指令和组件机制为什么使用虚拟DOM可以避免用户直接操作DOM,开发
翔子丶
·
2021-03-12 17:14
基于官方tomcat镜像修改为https
keytool-genkey-aliastomcat-keyalgRSA-keystoretomcat.keystore3.根据官方镜像启动容器,并本地目录挂载到容器中docker-it-d-vE:\projects\study\docker\
busybox
RickChan
·
2021-03-11 12:12
Docker Macvlan Network
-gateway=172.100.1.1-oparent=ens33macvlan_net2、测试互通节点1:dockerrun-it--netmacvlan_net--ip=172.100.1.10
busybox
liu__chao
·
2021-03-10 19:14
源码剖析
AQS(AbstractQueuedSynchronizer)-抽象队列同步器
前言:上一节实现了一个自定义锁,并且验证了其功能,这节将从源码出发,解析J.U.C的源码,并引出抽象队列同步器(AQS)。1JDK的ReentrantLock1.1ReentrantLock上节我们自己实现了tryLock、lock、unlock三个方法,我们先从这三个方法入手,看JDK的实现跟我们自己的实现有什么异同。先给出类图:从类图可以看出,ReentrantLock有三个内部类,而Sync
Vander1991
·
2021-03-06 17:10
树莓派集群安装rpi-
busybox
-httpd测试服务
一配置安装apiVersion:v1kind:Namespacemetadata:name:k3s-demo#自定义的命名空间---apiVersion:v1kind:Servicemetadata:name:httpdemospec:ports:-port:80targetPort:80protocol:TCPnodePort:31000protocol:TCPname:porttype:Nod
forrestsun
·
2021-03-03 11:29
Spike 运行RISC-V Linux
目录前提环境:大纲
busybox
安装riscv-linux编译riscv-pk包装spike运行相关参考文档前提环境:设置好$RISCV地址工具链:riscv64-unknown-linux-gnu-gcc
ピンポーン
·
2021-03-03 10:28
RISCV
risc-v
linux
busybox
SpringBoot
application.yamlapplication.properties属性注入常用注解@Value属性注入@ConfigurationProperties批量注入第三方配置松散绑定@Value与@ConfigurationProperties的对比日志框架源码
源码剖析
依赖管理
源码剖析
自动配置
哈哈海
·
2021-02-26 22:17
yolov5深度剖析+源码debug级讲解系列(一) yolov5的架构和源码debug准备
博主还是保持着一贯的风格,依旧采用debug级别的
源码剖析
。目的就是让大家可以通过一个系列的文章就把yolov5的架构、设计理念和每一行源码都弄懂。
欧气吸收大王
·
2021-02-26 17:47
目标检测
yolov5
深度学习
pytorch
目标检测
源码
通俗易懂的JUC
源码剖析
-CompletionService
前言相信大多数人对ExecutorService比较熟悉,那么CompletionService是什么东东呢?使用场景我们来看JDK官方doc给的栗子,假设现在有个计算问题,伪代码可抽象为Resultcompute(),且有一组解决方案,每个方案都会返回结果Result,我们希望并行执行这些方案,然后采取一定策略去决定使用哪个方案的结果。比如,使用最先返回结果的方案,然后取消执行其他方案的线程。代
·
2021-02-21 15:28
java
源码剖析
sync.cond(条件变量的实现机制)
原文链接:
源码剖析
sync.cond(条件变量的实现机制)sync.Cond的基本使用
·
2021-02-21 15:50
通俗易懂的JUC
源码剖析
-CompletionService
前言相信大多数人对ExecutorService比较熟悉,那么CompletionService是什么东东呢?使用场景我们来看JDK官方doc给的栗子,假设现在有个计算问题,伪代码可抽象为Resultcompute(),且有一组解决方案,每个方案都会返回结果Result,我们希望并行执行这些方案,然后采取一定策略去决定使用哪个方案的结果。比如,使用最先返回结果的方案,然后取消执行其他方案的线程。代
·
2021-02-21 14:11
java
java并发实现_Java并发实现原理:JDK
源码剖析
本书全面系统地讲解了Java并发实现原理,从基础的多线程知识讲起,全面介绍了Concurrent包的每个部分,详细分析多线程背后的原理,同时从源码角度进行了剖析,为的一本好书。本书全面而系统地剖析了JavaConcurrent包中的每一个部分,对并发的实现原理进行了深刻的探讨。全书分为8章,章从很基础的多线程知识讲起,理清多线程中容易误解的知识点,探究背后的原理,包括内存重排序、happen-be
SME情报员
·
2021-02-21 00:51
java并发实现
通俗易懂的JUC
源码剖析
-FutureTask
前言实现原理先来看类结构publicclassFutureTaskimplementsRunnableFuture{}publicinterfaceRunnableFutureextendsRunnable,Future{}publicinterfaceFuture{//booleancancel(booleanmayInterruptIfRunning);//booleanisCancelled
·
2021-02-20 01:26
java
通俗易懂的JUC
源码剖析
-CompletableFuture
前言CompletableFuture是JDK1.8新增的类。它实现了CompletionStage接口和Future接口。Future接口用来描述一个线程异步执行的结果,我们想要获取结果时只能通过isDone()轮询或者get()阻塞式的获取,这显然违背了异步编程的初衷。CompletableFuture吸收了Guava的设计思想,加入了许多扩展功能,使得我们能够更优雅地获取线程异步执行结果。使
·
2021-02-20 01:55
java
通俗易懂的JUC
源码剖析
-FutureTask
前言实现原理先来看类结构publicclassFutureTaskimplementsRunnableFuture{}publicinterfaceRunnableFutureextendsRunnable,Future{}publicinterfaceFuture{//booleancancel(booleanmayInterruptIfRunning);//booleanisCancelled
·
2021-02-20 01:45
java
通俗易懂的JUC
源码剖析
-CompletableFuture
前言CompletableFuture是JDK1.8新增的类。它实现了CompletionStage接口和Future接口。Future接口用来描述一个线程异步执行的结果,我们想要获取结果时只能通过isDone()轮询或者get()阻塞式的获取,这显然违背了异步编程的初衷。CompletableFuture吸收了Guava的设计思想,加入了许多扩展功能,使得我们能够更优雅地获取线程异步执行结果。使
·
2021-02-20 01:45
java
通俗易懂的JUC
源码剖析
-ForkJoinPool
前言ForkJoinPool常用于将大任务分解(Fork)成若干小任务并行执行,然后再把每个小任务的执行结果合并起来(Join)得到大任务的最终结果。下面是示意图(ps:盗网上网上盗的图,禁止套娃!)ForkJoinPool通常配合ForkJoinTask一起使用,ForkJoinTask代表一个任务,它是个抽象类,它的常见子类有RecursiveTask和RecursiveAction,其中Re
·
2021-02-18 23:09
java
通俗易懂的JUC
源码剖析
-ForkJoinPool
前言ForkJoinPool常用于将大任务分解(Fork)成若干小任务并行执行,然后再把每个小任务的执行结果合并起来(Join)得到大任务的最终结果。下面是示意图(ps:盗网上网上盗的图,禁止套娃!)ForkJoinPool通常配合ForkJoinTask一起使用,ForkJoinTask代表一个任务,它是个抽象类,它的常见子类有RecursiveTask和RecursiveAction,其中Re
·
2021-02-18 23:30
java
凝渊的 Java 技术目录
一、开源框架SpringSpring--概述Spring--手写IOC和AOPSpring--IOC基础应用Spring--IOC高级特性Spring--IOC
源码剖析
Spring--AOP基础应用MyBatis
Travis_Wu
·
2021-02-18 22:13
通俗易懂的JUC
源码剖析
-ScheduledThreadPoolExecutor
前言ScheduledThreadPoolExecutor是一种带有延迟,定时执行任务的线程池。它在很多延时任务、定时任务的场景中有丰富的应用场景。今天就来分析下它的实现原理吧。实现原理先看看类图结构:publicclassScheduledThreadPoolExecutorextendsThreadPoolExecutorimplementsScheduledExecutorService{}
·
2021-02-17 17:40
java
通俗易懂的JUC
源码剖析
-ScheduledThreadPoolExecutor
前言ScheduledThreadPoolExecutor是一种带有延迟,定时执行任务的线程池。它在很多延时任务、定时任务的场景中有丰富的应用场景。今天就来分析下它的实现原理吧。实现原理先看看类图结构:publicclassScheduledThreadPoolExecutorextendsThreadPoolExecutorimplementsScheduledExecutorService{}
·
2021-02-17 17:03
java
通俗易懂的JUC
源码剖析
-Semaphore
前言Semaphore意为信号量,它用来限制某段时间内的最大并发资源数。例如数据库连接池,停车位等。下面通过停车位的栗子来说明Semaphore的使用方式。importjava.util.concurrent.Semaphore;publicclassSemaphoreDemo{privatestaticSemaphoresemaphore=newSemaphore(10);publicstati
·
2021-02-17 12:59
java
通俗易懂的JUC
源码剖析
-Semaphore
前言Semaphore意为信号量,它用来限制某段时间内的最大并发资源数。例如数据库连接池,停车位等。下面通过停车位的栗子来说明Semaphore的使用方式。importjava.util.concurrent.Semaphore;publicclassSemaphoreDemo{privatestaticSemaphoresemaphore=newSemaphore(10);publicstati
·
2021-02-17 12:51
java
浅谈阻塞队列 BlockingQueue
关于阻塞队列,具体写过几篇
源码剖析
的文章。
every__day
·
2021-02-17 10:16
并发编程
BlockingQueue
阻塞队列
offer
take
通俗易懂的JUC
源码剖析
-CyclicBarrier
前言我们知道,CountDownLatch的计数器是一次性的,它不能重置。也就是说,当count值变为0时,再调用await()方法会立即返回,不会阻塞。本文要说的CyclicBarrier就是一种可以重置计数器的线程同步工具类。CyclicBarrier字面意思是“回环屏障”,它可以让一组线程全部到达一个状态后再全部同时往下执行。之所以叫回环是因为当所有线程执行完毕,并重置CyclicBarri
·
2021-02-16 15:44
java
通俗易懂的JUC
源码剖析
-CountDownLatch
前言在实际开发中,有时会遇到这样的场景:主任务需要等待若干子任务完成后,再进行后续的操作。这时可以用join或者本文的CountDownLatch实现。它们的区别在于CountDownLatch更加灵活。比如,子任务的工作分为两个阶段,主任务只需子任务完成第一个阶段即可开始主任务,无需等第二个阶段完成。这种场景join就无法做到,CountDownLatch就可以实现。下面是实例代码。import
·
2021-02-16 15:44
java
通俗易懂的JUC
源码剖析
-CyclicBarrier
前言我们知道,CountDownLatch的计数器是一次性的,它不能重置。也就是说,当count值变为0时,再调用await()方法会立即返回,不会阻塞。本文要说的CyclicBarrier就是一种可以重置计数器的线程同步工具类。CyclicBarrier字面意思是“回环屏障”,它可以让一组线程全部到达一个状态后再全部同时往下执行。之所以叫回环是因为当所有线程执行完毕,并重置CyclicBarri
·
2021-02-16 15:09
java
通俗易懂的JUC
源码剖析
-CountDownLatch
前言在实际开发中,有时会遇到这样的场景:主任务需要等待若干子任务完成后,再进行后续的操作。这时可以用join或者本文的CountDownLatch实现。它们的区别在于CountDownLatch更加灵活。比如,子任务的工作分为两个阶段,主任务只需子任务完成第一个阶段即可开始主任务,无需等第二个阶段完成。这种场景join就无法做到,CountDownLatch就可以实现。下面是实例代码。import
·
2021-02-16 15:37
java
通俗易懂的JUC
源码剖析
-ReentrantLock&AQS
AQS概述大家可能对AQS听得很多,它的全称是AbstractQueuedSynchronizer,即抽象队列同步器,它是JUC包中很多同步组件的基础。先来看看它的类层次以及内部数据结构吧。publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnableSynchronizerimplementsjava.io.Serializ
·
2021-02-09 01:54
java
通俗易懂的JUC
源码剖析
-StampedLock
StampedLock的作用StampedLock是JDK1.8新增的类,它类似ReadWriteReentrantLock,也有读写锁的功能,它还多了一种乐观读锁,它与ReadWriteReentrantLock的区别在于它是不可重入的,ReadWriteReentrantLock是可重入的。StampedLock有三种模式mode和一个版本号stamp。三种模式:悲观写模式:writeLock
·
2021-02-09 01:54
java
通俗易懂的JUC
源码剖析
-ThreadPoolExecutor
前言ThreadPoolExecutor相信大家都很熟悉:线程池的实现类。今天我们就来看看它内部是怎么实现的。实现原理先来看看它的类结构:publicclassThreadPoolExecutorextendsAbstractExecutorService{}publicabstractclassAbstractExecutorServiceimplementsExecutorService{}p
·
2021-02-09 01:22
java
通俗易懂的JUC
源码剖析
-ThreadPoolExecutor
前言ThreadPoolExecutor相信大家都很熟悉:线程池的实现类。今天我们就来看看它内部是怎么实现的。实现原理先来看看它的类结构:publicclassThreadPoolExecutorextendsAbstractExecutorService{}publicabstractclassAbstractExecutorServiceimplementsExecutorService{}p
·
2021-02-09 01:45
java
通俗易懂的JUC
源码剖析
-StampedLock
StampedLock的作用StampedLock是JDK1.8新增的类,它类似ReadWriteReentrantLock,也有读写锁的功能,它还多了一种乐观读锁,它与ReadWriteReentrantLock的区别在于它是不可重入的,ReadWriteReentrantLock是可重入的。StampedLock有三种模式mode和一个版本号stamp。三种模式:悲观写模式:writeLock
·
2021-02-09 01:45
java
通俗易懂的JUC
源码剖析
-ReentrantLock&AQS
AQS概述大家可能对AQS听得很多,它的全称是AbstractQueuedSynchronizer,即抽象队列同步器,它是JUC包中很多同步组件的基础。先来看看它的类层次以及内部数据结构吧。publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnableSynchronizerimplementsjava.io.Serializ
·
2021-02-09 01:45
java
源码剖析
sync.WaitGroup(文末思考题你能解释一下吗?)
原文链接:
源码剖析
sync.WaitGroup(文末思考题你能解释一下吗?)
·
2021-02-08 20:29
golangsync并发编程
通俗易懂的JUC
源码剖析
-DelayQueue
前言DelayQueue是BlockingQueue接口的实现类,它是带有延时功能的无界阻塞队列,意思就是每个元素都有过期时间,当从队列获取元素时,只有过期元素才会出队列。队列的头部元素是最快要过期的元素。实现原理先来看看它的类结构:publicclassDelayQueueextendsAbstractQueueimplementsBlockingQueue{}可以看到,存放的元素必须实现了De
·
2021-02-08 00:18
java
通俗易懂的JUC
源码剖析
-DelayQueue
前言DelayQueue是BlockingQueue接口的实现类,它是带有延时功能的无界阻塞队列,意思就是每个元素都有过期时间,当从队列获取元素时,只有过期元素才会出队列。队列的头部元素是最快要过期的元素。实现原理先来看看它的类结构:publicclassDelayQueueextendsAbstractQueueimplementsBlockingQueue{}可以看到,存放的元素必须实现了De
·
2021-02-08 00:01
java
Redis
源码剖析
之数据过期(expire)
我之前统计过我们线上某redis数据被访问的时间分布,大概90%的请求只会访问最新15分钟的数据,99%的请求访问最新1小时的数据,只有不到千分之一的请求会访问超过1天的数据。我们之前这份数据存了两天(近500g内存数据),如果算上主备的话用掉了120多个Redis实例(一个实例8g内存),光把过期时间从2天改成1天就能省下60多个redis实例,而且对原业务也没有啥太大影响。当然Redis已经实
·
2021-02-07 14:11
java
通俗易懂的JUC
源码剖析
-PriorityBlockingQueue
前言PriorityBlockingQueue是BlockingQueue接口的实现类,它是一种优先级阻塞队列,每次出队都返回优先级最高或最低的元素,其内部是用平衡二叉树堆实现的。这里的优先级指的是元素类必须实现Comparable接口,然后用compareTo()方法比较元素的优先级大小,当然也可指定自定义的比较器comparator。实现原理先来看看它的重要属性://队列默认容量为11priv
·
2021-02-06 23:09
java
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他