龙见愁的博客

认真写每一篇博客

后端开发工程师必须了解的网络协议基础知识大全

网络协议计算机网络体系结构OSI七层模型TCP/IP模型TCP/IP协议族TCP和UDP地址和端口号端口号的确定端口号与协议 计算机网络体系结构 OSI七层模型 开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询...

2019-08-20 19:00:04

阅读数 921

评论数 5

大厂很可能会问到的JMM底层实现原理

JMM和底层实现原理计算机原理 JMM(Java Memory Model),Java内存模型。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个虚拟计算机模型,JMM隶属于JVM。Java1.5版本对其进行了重构,现在的Java仍沿用了Java1.5的版本。...

2019-08-19 10:31:38

阅读数 50

评论数 0

必须掌握的并发安全知识

并发安全什么是线程安全性如何做到线程安全线程封闭使用无状态类让类不可变安全地发布 什么是线程安全性 在《Java并发编程实战》中,定义如下: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在调用代码中不需要任何额外的同步或者协同,这个类都能表现出正确的...

2019-08-14 19:52:54

阅读数 160

评论数 0

Java面试经常会问到的线程池,你搞清楚了吗?

线程池为什么要用线程池? 为什么要用线程池? Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到...

2019-08-09 17:44:14

阅读数 146

评论数 0

一文彻底搞懂并发容器(ConcurrentHashMap、BlockingQueue等)

并发容器预备知识hashHashMap为什么会出现ConcurrentHashMapJDK1.7中多线程下HashMap死循环分析 预备知识 hash 就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也...

2019-08-08 07:46:22

阅读数 439

评论数 9

深入理解显式锁(Lock)和AQS(AbstractQueuedSynchronizer)(超详细)

显式锁和AQS显式锁Lock特性使用范式APIReentrantLock(可重入锁)锁的可重入锁的公平和非公平APICondition使用范式APILockSupportCLH(队列锁) 显式锁 Lock 接口,实现类:ReentrantLock , ReentrantReadWriteLo...

2019-08-04 12:18:34

阅读数 966

评论数 2

学会使用原子操作CAS(Compare And Swap)

原子操作CAS什么是原子操作?如何实现原子操作?加锁CASCAS实现原子操作的三大问题JDK中相关原子操作类(java.util.concurrent.atomic)的使用AtomicIntegerAtomicIntegerArrayAtomicReferenceAtomicStampedRefe...

2019-07-31 18:48:47

阅读数 68

评论数 0

学会使用线程的并发工具类(ForkJoin、CountdownLatch、CyclicBarrier、Semaphore、Exchange)

线程的并发工具类ForkJoin工作原理工作密取使用范式 ForkJoin 工作原理 工作密取 即当前线程的Task已经全被执行完毕,则自动取到其他线程的Task池中取出Task继续执行。 ForkJoinPool中维护着多个线程(一般为CPU核数)在不断地执行Task,每个线程除了...

2019-07-31 10:09:25

阅读数 156

评论数 1

走进Java里的线程世界

线程基础、线程之间的共享和协作基础概念什么是进程和线程CPU时间片轮转机制澄清并行和并发高并发编程的意义、好处和注意事项认识Java里的线程 基础概念 什么是进程和线程 进程是程序运行资源分配的最小单位 进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,...

2019-07-28 17:14:40

阅读数 180

评论数 1

BIO通信示例

下面的示例中,可以创建多个客户端和一个服务端。 每个客户端可以以换行为结束地发送字符串到服务端。 如果字符串为"quit",则结束发送。转为接收模式。 服务端结束接收后,可以发送字符串给接收模式下的随机客户端(因为不知道此时是在哪条线程下)。 如果字符串为"...

2019-08-22 20:15:31

阅读数 5

评论数 0

println方法可以刷新共享变量?

看如下代码: public class SynMemory { private static boolean ready; private static int number; private static class PrintThread extends T...

2019-08-18 22:13:54

阅读数 11

评论数 0

伪共享示例

public class FalseSharing implements Runnable { public final static int NUM_THREADS = Runtime.getRuntime().availableProcessors(); ...

2019-08-16 15:49:03

阅读数 30

评论数 0

动态顺序死锁及活锁示例

这个示例模拟的是2个人相互转账的过程: 个人账户实体类: public class UserAccount { private final String name;//账户名称 private int money;//账户余额 private final ...

2019-08-14 09:10:51

阅读数 20

评论数 0

面试官:请写一段能造成死锁的代码。(附:定位死锁的方法)

思路:定义2个锁、2个方法,2个方法获取锁的顺序相反,且中间有休眠时间。 这样启动2个线程分别运行这2个方法,2个线程会一直处于等锁状态。 public class NormalDeadLock { private static Object valueFirst = new Obj...

2019-08-12 16:06:09

阅读数 38

评论数 0

线程池异常处理示例

定义一个延时任务,可以切换三种状态: 正常执行 抛出异常 抛出异常并捕获 import java.text.SimpleDateFormat; import java.util.Date; public class ScheduleWorker implements Run...

2019-08-10 19:12:53

阅读数 33

评论数 0

线程池扩展功能使用示例

使用了beforeExecute()、afterExecute()、terminated()方法。 作用: beforeExecute():在每个任务执行前执行。 afterExecute():在每个任务执行后执行。 terminated():在线程池关闭后执行。 import ...

2019-08-09 18:04:44

阅读数 57

评论数 0

CompletionService<V>使用示例

构造了一个有返回值的任务,用sleep(随机数)模拟工作时间: import java.util.Random; import java.util.concurrent.Callable; public class WorkTask implements Callable&lt;...

2019-08-09 17:17:18

阅读数 42

评论数 0

手写一个简单的线程池

import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; /** *类说明:简陋的自定义线程池实现 */ ...

2019-08-08 11:49:59

阅读数 41

评论数 0

并发下的Map常见面试题汇总

并发下的Map常见面试题汇总 Q:HashMap 和 HashTable 有什么区别? A: ①、HashMap 是线程不安全的,HashTable 是线程安全的; ②、由于线程安全,所以 HashTable 的效率比不上 HashMap; ③、HashMap最多只允许一条记录的键为nu...

2019-08-08 11:07:36

阅读数 45

评论数 0

模板方法模式

模板方法模式 同步器的设计基于模板方法模式。模板方法模式的意图是,定义一个操作中的算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。我们最常见的就是Spring框架里的各种Template。 例子: 我们开了个蛋糕店,我们决定先卖奶...

2019-08-05 16:40:41

阅读数 28

评论数 0

提示
确定要删除当前文章?
取消 删除