1、servlet安全问题:由于servlet是单例的,当多个用户访问servlet的时候,服务器会为每个用户创建一个线程,当多个用户并发访问servlet共享资源的时候就会出现线程安全问题。 原则:如果一个变量需要多个用户共享,则应该在访问变量的时候加同步机制synchronize(对象){};如 ...
分类:
其他好文 时间:
2018-09-04 18:58:40
阅读次数:
144
1.public static void main() 方法中,static 和 public可以换位置,可以final修饰,也可以synchronize修饰。 final修饰变量时,如果没有static修饰,那么可以在声明时赋值,也可以在构造函数中赋值。。 2.类中的静态代码块比main方法先执行 ...
分类:
编程语言 时间:
2018-09-02 00:05:20
阅读次数:
181
"本文参考引用,本人整理个人理解。地址点击" 1.实现原理 synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。 下面是一些同步的基础 1. 普通同步方法,锁是当前实例对象; 2. 静态同步方法,锁是当前类的class对 ...
分类:
其他好文 时间:
2018-08-23 16:50:59
阅读次数:
1485
synchronize锁重入: 关键字synchronize拥有锁重入的功能,也就是在使用synchronize时,当一个线程的得到了一个对象的锁后,再次请求此对象是可以再次得到该对象的锁。 当一个线程请求一个由其他线程持有的锁时,发出请求的线程就会被阻塞,然而,由于内置锁是可重入的,因此如果某个线 ...
分类:
编程语言 时间:
2018-08-20 21:48:32
阅读次数:
162
在分布式开发中,锁是线程控制的重要途径。Java为此也提供了2种锁机制,synchronized和lock。做为Java爱好者,自然少不了对比一下这2种机制,也能从中学到些分布式开发需要注意的地方。 我们先从最简单的入手,逐步分析这2种的区别。 一、synchronized和lock的用法区别 sy ...
分类:
编程语言 时间:
2018-08-20 21:42:34
阅读次数:
206
image 众所周知 Synchronize 关键字是解决并发问题常用解决方案,有以下三种使用方式: 同步普通方法,锁的是当前对象。 同步静态方法,锁的是当前 Class 对象。 同步块,锁的是 {} 中的对象。 实现原理: JVM 是通过进入、退出对象监视器( Monitor )来实现对方法、同步 ...
分类:
编程语言 时间:
2018-08-20 21:39:44
阅读次数:
174
corejavahashcode相等的两个对象一定相等吗?equals呢?反过来相等吗?介绍一下集合框架?hashtable,hashmap底层实现是什么?hashtable和concurrenthashmap底层实现的区别?hashmap和treemap的区别?底层数据结构都是什么?线程池用过吗?都有什么参数?底层是如何实现的?synchronize和Lock接口的区别是什么?synchroni
分类:
其他好文 时间:
2018-08-20 00:30:16
阅读次数:
270
1.下图是数据通信的一个过程:TCP三次握手. TCP数据传输. TCP的四次断开 SYN:(同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立的时候有效。表示一个新的TCP连接请求。 ACK:(确认编号,Acknowledgement Number)是对... ...
分类:
系统相关 时间:
2018-08-18 00:59:08
阅读次数:
193
线程池是个好东西,最大线程数限制了服务无限制使用宝贵的操作系统线程,最大队列保护内存溢出,完美! 但是线程池使用不当也会导致死锁。这种死锁,要是不知道原理,死都不知道咋死的,并且非常难定位。大家知道,死锁一般都是由于资源征用引起的。而线程池引起的死锁,可能连个synchronize关键字都没有。连同 ...
分类:
编程语言 时间:
2018-08-12 00:31:55
阅读次数:
213
/** *生产者生成水果,如果水果没有被买走那么就不生产处于等待状态,如果水果被消费者买走的时候,消费者会通知生产者 *告诉生产者,我已经买了,快生产,消费者同理,如果水果已经生产出来就买走,买走之后再通知生产者记得生产 *买的水果是一个对象,是公共的,在synchronize代码块中, *。 */ ...
分类:
编程语言 时间:
2018-07-28 23:28:16
阅读次数:
209