一、背景相信大家在面试过程中遇到面试官问线程的很多,线程过后就是线程池了。从易到难,都是这么个过程,还有就是确实很多人在工作中接触线程池比较少,最多的也就是创建一个然后往里面提交线程,对于一些经验很丰富的面试官来说,一下就可以问出很多线程池相关的问题,与其被问的晕头转向,还不如好好学习。此时不努力更待何时。二、什么是线程池?线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管理。如果每个请求都创建一个线程去...
7年前 (2018-06-16)
阅读(2892)
赞一个 (5)
链接直达
在上一篇漫画中,小灰介绍了如何使用redis实现分布式锁。没看过的小伙伴可以点击下面链接:漫画:什么是分布式锁?那么,如何用Zookeeper来实现分布式锁呢?这一次我们会为大家详细讲述。什么是临时顺序节点?让我们来回顾一下Zookeeper节点的概念:Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。Znode分为四种类型:1、持久节点 (PERSISTENT)默认的节点类型。创建节点的客户端与zo...
7年前 (2018-06-16)
阅读(3330)
赞一个 (0)
链接直达
————— 第二天 —————————————————分布式锁的实现有哪些?1、Memcached分布式锁利用Memcached的add命令。此命令是原子性操作,只有在key不存在的情况下,才能add成功,也就意味着线程得到了锁。2、Redis分布式锁和Memcached的方式类似,利用Redis的setnx命令。此命令同样是原子性操作,只有在key不存在的情况下,才能set成功。(setnx命令并不完善,后续会...
7年前 (2018-06-16)
阅读(2720)
赞一个 (0)
链接直达
问题背景线上某个新管理型系统出现了日志无法按天切割生成日志文件的问题,所有的日志都在一个日志文件里面,只有每次重启的时候才会重新生成文件。这个管理系统使用的是 Spring Boot + Logback 框架,查看了 Logback 的日志文件,发现了策略组合使用问题。以下是有问题的日志配置代码。<appender name="FILE" class="ch.qos.logback...
7年前 (2018-06-16)
阅读(7179)
赞一个 (5)
链接直达
无论使用什么方式对List进行遍历,都不能直接对List<E>变量进行直接修改操作,比如:List<String> strList = new ArrayList<String>();
strList.add("john");
strList.add("mark"); ...
7年前 (2018-06-13)
阅读(10621)
赞一个 (3)
链接直达
一、理解MVCMVC是一种经典的设计模式,全名为 Model-View-Controller,即模型-视图-控制器。其中,模型是用于封装数据的载体,例如,在Java中一般通过一个简单的POJO(Plain Ordinary Java Object)来表示,其本质是一个普通的Java Bean,包含一系列的成员变量及其getter/setter方法。对于视图而言,它更加偏重于展现,也就是说,视图决定了界面到底长什么样子,在Java中可通过...
7年前 (2018-06-11)
阅读(2514)
赞一个 (5)
链接直达
为了可以更好的管理Dubbo,可以先在本机搭建Dubbo管理平台 一、安装ZooKeeper环境dubbo依赖zookeeper环境,首先保证本机安装了zookeeper,至于安装方法,只需要去官网zookeeper官网 下载,我这里是windows系统,这里只用到zk的单机模式,所以只要简单的修改conf下的zoo.cfg,配置好data和dataDir即可(注意要保证目录存在, 否则可能会报错),至于zk的详细配...
7年前 (2018-06-09)
阅读(4213)
赞一个 (0)
链接直达
当你的项目拥有了多个 Module 的时候你会发现自己的控制台默认的路径可能不是自己想要的了比如下图,我需要经常维护 web 模块,但是每次打开都是在 tab 目录下怎么切换呢?其实非常的简单,打开偏好设置-》Tools-》terminal,修改Start directory的值为你想要的路径即可。此时,退出终端再重新打开,完美!...
7年前 (2018-06-08)
阅读(6700)
赞一个 (0)
链接直达
有没有经常敲错命令?比如git status?status这个单词真心不好记。如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的。我们只需要敲一行命令,告诉Git,以后st就表示status:$ git config --global alias.st status好了,现在敲git st看看效果。当然还有别的命令可以简写,很多人都用co表示ch...
7年前 (2018-06-05)
阅读(2482)
赞一个 (1)
链接直达
本篇文章转载自公众号“码农翻身”,作者刘欣用小清新的故事说明了什么是网络爬虫,非常的有意思。诞生我是一个Web Crawler , 有时候称为Spider , 你们经常说的爬虫就是我。我想我是遇到了好时代,感谢IT政府,提供了简单的HTTP协议,还有HTML,CSS, JavaScript这一系列开放的技术, 原来的桌面应用,局域网应用都被搬到了网络上,形成了一个个的网站, 网站互联起来,形成了一个覆盖全世界的大网。在这个大背景下,我应...
7年前 (2018-06-04)
阅读(2654)
赞一个 (1)
链接直达
Zookeeper 的安装下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录。“bin目录”中存放有运行脚本;“conf目录”中存放有配置文件;“lib目录”中存放有运行所需要第三方库。解压文件:tar zxvf zookeeper-3.4.1...
7年前 (2018-06-02)
阅读(6259)
赞一个 (0)
链接直达
1、直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。如何写写成代码:首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。设定插入数和得到已经排好序列的最后一个数的位数。insertNum和j=i-1。从最后一个数开始...
7年前 (2018-05-29)
阅读(2998)
赞一个 (1)
链接直达