
Java多线程
pHscccr_Ayyx
新手JavaProgrammer-
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Synchronized与J.U.C(java.util.concurrent)下的ReetrantLock区别及使用场景
通常在面试时,面试官会问到你,Java中实现同步有哪些方式(或者可以问你Java中有哪些加锁的方式?或是Java中有哪些方式可以保证线程并发安全?)此类的问题,今天谈谈相应的实现方式和使用场景。 Synchronized关键字 这个JVM原生语法层面的互斥锁,核心是通过使用对象锁进行实现(对象锁,简单的说在每个Java对象的对象头中的Mark Word中都会有一个Monitor对象-由C语言的ObjectMonitor实现), 在对实例方法或者类方法(static方法)添加此关键字时,是通过标志位AC.原创 2020-08-26 12:31:41 · 378 阅读 · 1 评论 -
初识Java中的四大线程池和ThreadPoolExecutor的使用(欢迎指正)
初识Java中的四大线程池和ThreadPoolExecutor的使用(欢迎指正) 为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率; 2.线程并发数量过多,抢占系统资源从而导致阻塞; 3.对线程进行一些简单的管理。 Java中通过 Executors 的四大线程池分别为: newCachedThreadPool:顾名思义,此方法创建一个可...原创 2018-09-17 19:50:16 · 212 阅读 · 0 评论 -
【转】Java Collection(集合)必考面试题
Arraylist 与 LinkedList 异同 1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 2. 底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向链表数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别:); 详细可阅读JDK1....转载 2018-11-28 10:20:32 · 258 阅读 · 0 评论 -
Java
1.Java基础-源码 1. 常用的设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模版模式 Decorator装饰器模式 Observer观察者模式 2. Spring5源码和层次分析 Beans 1.接口实例化 2.代理Bean操作 Context 1....原创 2018-12-03 18:32:26 · 348 阅读 · 0 评论 -
Netty学习-组件
在Netty的学习过程中,形如SOAP协议、WSDL语言之于WebService,Netty有几个在使用时必不可少的组件。 1.BootStrap/ServerBootStrap 分别对应客户端以及服务器端,用来配置整个Netty 程序,串联各个组件,一个Netty 程序也是由这部分开启; ChannelFuture channelFuture = serverBootstrap....原创 2018-12-19 16:19:27 · 188 阅读 · 0 评论 -
Java内存模型
经过长时间的验证和修补,在JDK1.5发布后,Java内存模型就已经成熟和完善起来了。 主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,后者是线程私有的,不会被共享。 Java内存模型中...转载 2018-12-26 20:28:46 · 117 阅读 · 0 评论 -
2019-Java面试总结(基础篇)
1.什么是面向对象? 把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。(这里简单的说下,具体太复杂) 简写:面向对象是程序的一种面向方式,它的程序比较集中,它有两个成员,一个是属性,一个是方法,可以更集...原创 2019-02-19 11:22:45 · 333 阅读 · 0 评论 -
Java中wait和sleep方法的区别
这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁)。 wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围) sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异...转载 2019-02-21 09:42:46 · 130 阅读 · 0 评论 -
Java内存模型中,一些“天然的”先行发生(happens-before)关系
这些先行发生关系无须任何同步协助器就已经存在,可以在编码中直接使用。 如果两个操作之间的关系不在此列,并且无法从下列规则中推导出来的话,他们就没有顺序性保障,虚拟机可以任意对他们进行重排序。 先行发生是指Java内存模型中定义的两项操作之间的偏序关系,如果说操作A先行发生于操作B,其实就是说在操作B发生之前, 操作A产生的‘影响’就能被操作B观察到。‘影响’包括了修改了共享变量的值,发送了消息...原创 2019-05-05 16:02:48 · 233 阅读 · 0 评论