一、servlet、GenericServlet、HttpServlet 1、servlet具有四个生命周期方法 特性:单例模式,线程不安全,效率高 2、servletConfig接口对应根元素对应的方法我们写的只是servlet类,而这种我们没有实现的接口是tomcat去实现了并且创造对象调用方法 ...
分类:
Web程序 时间:
2020-02-15 15:40:48
阅读次数:
80
[toc] 1.redis的应用场景 商品秒杀 点赞等 现在有一个减少商品的场景,我们很容易能写出其代码 但是有一个问题,该程序单机下线程不安全。不过可以解决:加锁 加锁解决了单机的线程安全的问题,但是在集群的情况下线程依旧不安全,因为集群的情况下有多个服务器同时运行那么依然会产生线程安全问题; 因 ...
分类:
编程语言 时间:
2020-02-08 00:10:07
阅读次数:
100
一:容器 分类: 增: 这两个456字符串是不是一个对象呢 这里是否是一个对象还是遵循字符串是否是一个对象的原则,如果是字符串字面量则是一个对象,如果是字面量拼接也是,但是如果是变量的拼接就不是了。 ArrayList:数组,查询效率高 增删效率低 线程不安全 LinkedList 链表 增删效率高 ...
分类:
其他好文 时间:
2020-02-06 23:18:48
阅读次数:
65
定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 特点 单例类只能有一个实例 必须创建自己的唯一实例 给其它对象提供这一实例 构造函数一般是私有的 实现方式 1、懒汉式(线程不安全) 这种方式不支持多线程,但是用到了懒加载(用到的时候才去加载) 2、懒汉式(线程安全) 或者这样写 这种方 ...
分类:
其他好文 时间:
2020-02-06 18:14:56
阅读次数:
67
Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 需要并发读写时,一般的做法是加锁,但这样性能并不高,Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,sync.Map 和 map 不同,不是以语言原生形态提供,而是在 sync 包下的特殊结构 ...
分类:
编程语言 时间:
2020-02-03 12:11:42
阅读次数:
77
(1)HashMap的线程不安全原因一:死循环 原因在于HashMap在多线程情况下,执行resize()进行扩容时容易造成死循环。 扩容思路为它要创建一个大小为原来两倍的数组,保证新的容量仍为2的N次方,从而保证上述寻址方式仍然适用。扩容后将原来的数组从新插入到新的数组中。这个过程称为reHash ...
分类:
其他好文 时间:
2020-01-21 18:04:15
阅读次数:
83
Atomic类 Atomic类是一个简单的高效的、线程安全的递增递减方案,在多线程或者并发环境中,我们常常会遇到这种情况 int i=0; i++ 稍有经验的同学都知道这种写法是线程不安全的。为了达到线程安全的目的,我们通常会用synchronized来修饰对应的代码块。现在我们有了新的方法,就是使 ...
分类:
其他好文 时间:
2020-01-18 12:22:08
阅读次数:
83
java复习 java的特点:简单、面向对象、可移植、跨平台、分布式、多线程、稳定安全、高性能 一个数组可以存放许多不同类型的数值。 (F) StringBuffer类是线程安全的,StringBuilder类是线程不安全的。 (T) 字节流与字符流: 字节流是InputStream and Out ...
分类:
编程语言 时间:
2020-01-17 19:19:01
阅读次数:
96
1.StringBuffer和StringBuilder的区别?共同点:都是可变的字符序列不同点:StringBuffer:是一个线程安全的类,同步的,线程角度来说,执行效率低StringBuilder:是一个线程不安全的类,不同步的,线程角度来说,执行效率高在单线程程序中,StringBuilder用来替代StringBuffer2.StringBuffer和数组都属于容器,有什么区别?Stri
分类:
其他好文 时间:
2020-01-15 10:09:21
阅读次数:
68