前言 java最常见的设计模式就是单例模式,而单例模式最常见的就是懒汉式和饿汉式,现在就分别看一下 1.懒汉式 懒汉式比较懒,当别人用到时才会初始化实例,而当有多个人同时用到就可能产生多个实例,造成线程安全问题。 2.饿汉式 饿汉式比较饿,在别人没有使用时就是先准备好了一份食物,因此别人来拿的时候都 ...
分类:
编程语言 时间:
2018-12-27 00:39:32
阅读次数:
232
线程安全问题 先看下面代码出现的问题: 定义一个Task类,里面有一个成员变量和一个有boolean类型参数的方法,方法内部会根据传入参数修改成员变量的值。 创建一个Task对象,将这个对象放到两个线程中,在这两个线程中分别调用changeNum方法 上面的代码有可能会出现打印这样的结果: 正常情况 ...
分类:
其他好文 时间:
2018-12-21 15:16:12
阅读次数:
176
线程是我们学习Java知识中一个重要的难点,首先我们要明白两种创建线程的方法,其次在售票问题中我们要注意线程并发带来的线程安全问题。 最后我们要明白几个重要的概念: ①保证代码原子性:所谓代码原子性是指当a线程在执行某段代码块的时候,别的线程必须等待 ,直到a线程执行完才可以执行这段代码。 ②对象锁 ...
分类:
编程语言 时间:
2018-12-17 02:22:03
阅读次数:
184
2.用SingleThreadModel解决多线程安全问题:(视频下载) (全部书籍) 前 面介绍的都是普通的Servlet。对于每一个用户请求,那些Servlet都会用线程的方式给予应答。这样比较节省系统的资源。Sun公司也给出了另外 一种方法,就是这节要介绍的SingleThreadModel的 ...
分类:
编程语言 时间:
2018-12-15 12:05:29
阅读次数:
216
当多个线程同时访问同一对象中的实例变量时,就会出现非线程安全性,从而导致脏读取,即所检索的数据发生更改。线程安全性意味着所获得的实例变量的值是同步的。 方法内的变量是线程安全的 方法中的变量是线程安全的。非线程安全问题存在于实例变量中。如果它是一个方法中的私有变量,就不会有非线程安全问题。实例如下: ...
分类:
其他好文 时间:
2018-12-09 18:52:53
阅读次数:
154
一、线程安全问题 多线程操作各自线程创建的资源的时候,不存在线程安全问题。但多线程操作同一个资源的时候就会出现线程安全问题。下例为两个线程操作同一个name资源时发生的问题。 问题出现过程: 二、synchronized代码块 如果name赋值,打印name是一个原子操作就可以避免线程安全问题。 j ...
分类:
编程语言 时间:
2018-12-07 18:25:36
阅读次数:
221
1、基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理? (2)单线程处理的缺点? 2、Redis不存在线程安全问题? Redis采用了线程封闭的方式,把任务封闭在一个线程,自然避免了线程安全问题,不过对于需要 ...
分类:
编程语言 时间:
2018-12-05 20:32:12
阅读次数:
190
1、饿汉式 2、懒汉式的双重检查锁定 3、内部类 ...
分类:
编程语言 时间:
2018-12-03 16:30:30
阅读次数:
186
package com.hls.juc;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 解决多线程安全问题的方式: 3种 * synchronized: 隐式锁 ...
分类:
编程语言 时间:
2018-11-27 22:11:47
阅读次数:
156
synchonizd解决安全性问题 线程安全问题产生的条件:要有两个线程以上;必须要对同一变量进行操作;必须代码块使用同一把锁 原理:一个拿到锁,其它线程进行等待;释放过后,其它线程才能访问,就是锁的竞争问题,也是死锁产生的条件 ...
分类:
编程语言 时间:
2018-11-25 16:12:16
阅读次数:
187