- 博客(15)
- 收藏
- 关注
原创 并发编程之 ThreadLocal
并发编程之 ThreadLocalThreadLocal并不是一个线程,而是为线程提供一个局部的变量副本,即提供线程粒度的变量。ThreadLocal可以针对线程将一个共享的变量为该线程创建一个副本,然后只供该线程使用。实现方式:ThreadLocal中包含get()、set()、remove()方法,分别为获取值、设置值、删除 方法。get():获取该线程下的变量值,如果没有set过值,初...
2019-10-16 10:27:37
288
原创 Kafka入门知识
本文主要介绍kafka相关知识,由浅入深,文章较长。Kafka:kafka是什么:Linked in公司开发(国外公司)。外表像一个消息中间件,但不仅仅是一个消息中间件。kafka支持消息的发布订阅(消息中间件功能),可进行流处理,在大数据领域可以看做是一个实时版的hadoop。与普通消息中间件区别:1.天生支持分布式,可以以集群方式运行。2.磁盘存储数据。3.可以进行流处理数据,极大增加了...
2019-10-10 17:32:33
453
原创 线程基础
本文主要介绍线程的基础知识,相应的一些方法。进程和线程区别:一个进程就是一个程序,当运行一个程序时,计算机会为这个程序开启一个进程。线程是用来真正执行程序的,一个进程最少有一个线程。补充:linux环境:一个进程最多可开1000个线程。windows环境:一个进程最多可开2000个线程。操作系统添加线程上线是因为线程切换需要耗费时间、占用内存,线程太多会将计算机资源耗尽导致死机。CPU时间片轮...
2019-10-10 15:33:00
364
原创 并发编程之Executor框架
Executor框架、Executors、ExecutorService及CompletionServiceExecutor:java.util.concurrent提供了一种灵活的线程池 实现作为Executor的一部分。Executor虽是个简单的接口,但能支持多种不同类型的任务执行策略。public interface Executor { /** * Execute...
2019-05-22 17:39:08
130
转载 并发闭锁之CountDownLatch和FutureTask
闭锁:一种同步工具类,可以用来确保某些活动指导其他活动都完成后才执行。CountDownLatch:一种闭锁的实现,可以使一个或多个线程等待一组事件发生。FutureTask:一种闭锁的实现...
2019-05-22 14:32:15
2967
原创 并发容器使用
CopyOnWriteArrayList、ConcurrentSkipListMap、ConcurrentSkipListSet、ConcurrentHashMap、BlockingQuence等并发容器使用:
2019-05-21 17:33:21
173
原创 并发编程之BlockingQuence与Deque
阻塞队列:阻塞队列与普通队列的区别是支持添加、删除时阻塞功能。阻塞添加:在添加时,如果队列已满则阻塞该线程,直到不满时唤醒线程继续执行添加操作。阻塞删除:在删除时,如果队列为空则阻塞该线程,直到队列不为空再执行删除操作(一般都会返回被删除的元素)。BlockingQuence(接口)阻塞队列:阻塞队列提供了可阻塞的put和take方法,以及支持定时的offer和poll方法。put()和ta...
2019-05-21 17:31:37
384
原创 synchronized和@Transactional注解一起使用锁失效问题
开发时发现,@Transactional作用在方法上时,并发高的情况下,synchronized会失效。synchronized锁:锁的是对象、方法或代码块。@Transactional(rollbackFor=Exception.class)public synchronized String demo(String req)throws Exception { System.out....
2019-04-29 17:30:50
3322
4
原创 设计模式-组合整理
组合整理之6大原则单一职责原则、里式替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则1.单一职责原则:一个类只有一个功能。例如一部手机,接打电话是一个功能,上网是一个功能,照相是一个功能。每个功能都应该是一个单一的类,只有该功能改变时才会改变该类。该原则的优点是降低耦合度,增加代码阅读性。缺点是类太多,不方便维护。使用时应看具体情况。2.里式替换原则:父类出现的地方,可以用子类替换...
2019-04-24 13:51:48
161
原创 Linux 查询日志命令
tail查看日志:tail -f filename (实时查看日志)tail -n 100 filename (显示filename最后100行)tail -n +100 filename (从第100行开始显示文件)cat查看日志cat -n filename |grep “关键字” (根据关键字查询)以上会存在日志行数较多,导致屏幕显示不全,所以可以使用less命令:less...
2019-04-24 13:50:28
446
原创 设计模式 之 6大原则
该文章主要讲述了自己对6大设计原则的认识与理解,6大原则只是一个大致的规范,每个原则各有利弊,需要根据具体的情况来确定是否需要遵守
2018-10-23 19:46:34
205
转载 sql中where、having、group by、order by执行和书写顺序
文章转载https://www.cnblogs.com/Jessy/p/3527091.htmlwhere和having区别: 1.having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。 2.where肯定在group by 之前,即也在having之前。 3.where后的条件表达式里不允许使用聚合函数,而having可以。 g...
2018-08-17 16:13:39
8993
1
原创 mysql 联合索引 in查询是否生效
这篇文章主要讲的是使用in查询,联合索引是否会生效的问题 首先简单说一下联合索引:联合索引又叫复合索引,是由表中的几个列联合组成的索引。联合索引生效需满足最左前缀原则,即如果联合索引列为a,b,c三列,a,b,c 、a,b 、a生效,b,c、a,c、b、c等不生效(此处的顺序不是where条件后面的先后顺序,而是where条件中是否存在这些列,如果where中只存在a,c列,...
2018-08-10 19:36:39
14823
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人