看题目: 第一种解法采用绝对悲观锁保证绝对的线程安全,思路很简单:不考虑线程协作写代码,然后找出单线程环境下存在控制依赖与数据依赖且涉及共享变量的部分,保证其原子性后确定互斥关系,决定那些操作是互斥的,则共用一把锁。 class H2O { int hNums=0; int oNums=0; pub ...
分类:
其他好文 时间:
2020-03-09 01:24:01
阅读次数:
65
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。
作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。
分类:
编程语言 时间:
2020-03-08 23:19:21
阅读次数:
82
1. Spring 单例Bean的线程安全问题 单例bean存在线程安全问题,当多线程操作成员变量时会有冲突发生,如果定义在方法入参处那样在栈中则不会。避免使用成员变量或推荐使用ThreadLocal成员变量拉 Bean的生命周期 预先知识 其实在学习Spring时就有接触,没有使用就很容易忘记,见 ...
分类:
其他好文 时间:
2020-03-06 23:49:26
阅读次数:
59
[TOC] 一.概述 LinkedHashMap是HashMap的子类,关于HashMap可以看下前面的章节: "java基础进阶篇 HashMap" 二.特点 非线程安全 LinkedHashMap 内部保证顺序; 分插入顺序和访问排序两种, 如果是访问顺序,那put和get操作已存在的Entry ...
分类:
编程语言 时间:
2020-03-06 10:38:28
阅读次数:
62
一.并发处理 1.获取单例对象需要保证线程安全,其中的方法也要保证线程安全 2.线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。减少资源消耗 3.线程池不允许使用Executors区创建,而是通过ThreadPoolExecutor的方式,规避资源耗尽的风险 FixedThreadPoo ...
分类:
其他好文 时间:
2020-03-06 01:32:35
阅读次数:
69
[TOC] 一.概述 LinkedHashMap是HashMap的子类,关于HashMap可以看下前面的章节: "java基础进阶篇 HashMap" 二.特点 非线程安全 LinkedHashMap 内部保证顺序; 分插入顺序和访问排序两种, 如果是访问顺序,那put和get操作已存在的Entry ...
分类:
编程语言 时间:
2020-03-05 18:01:27
阅读次数:
83
一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.synchronizedList(List list)函数返回一个线程安全的Array ...
分类:
编程语言 时间:
2020-03-05 13:43:39
阅读次数:
79
HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象,来放entry键值对。当获取对象时,通过键对象的 ...
分类:
其他好文 时间:
2020-03-05 01:35:33
阅读次数:
2338
StringBuffer 字符串变量(线程安全 在多线程的状况能够保证线程的安全运行)StringBuilder 字符串变量(非线程安全 运行更加迅速) /*对待线程安全问题,我们可以把一个字符串的改变看成两部来实现,首先就是字符串的索引位置存放元素* 然后继续增大Size的值 在单线程的情况下如果 ...
分类:
编程语言 时间:
2020-03-05 01:30:04
阅读次数:
80
StringBuffer和StringBuilder前者是线程安全的后者是线程不安全的,在进行编码时如果不考虑多线程或者线程安全的情况下优先使用StringBuilder,因为执行更快! 1.String、StringBuffer、StringBuilder三者的对比 1.String:不可变的字符 ...
分类:
编程语言 时间:
2020-03-05 01:02:04
阅读次数:
83