多线程
tanxi_faith
The longer climb, The better see
展开
-
多线程之对象及变量的并发访问(一) - synchronized同步方法
一、前述最近看了多线程的一本书,寻思着自己做做笔记,同时也分享下,打算写一个系列的博客,结合书本和自己的一些理解,希望大家支持,提出不好的地方二、synchronized同步方法2.1 方法内的变量为线程安全相信看到这里的人,肯定平时的开发中已经接触过 线程安全 与 非线程安全 相关的技术点,或者说一些平时的项目,或者我们 java 基础里的集合,里面就有很多线程安全的,以及非线程安全的等...原创 2019-06-22 14:45:02 · 663 阅读 · 0 评论 -
多线程之对象及变量的并发访问(二) - 实例变量非线程安全
一、前述本文继续分享多线程的对象及变量的并发访问二、实例变量非线程安全平时开发中,经常会遇到多个线程共同访问一个实例变量,这样就会出现非线程安全的脏读问题线程访问的对象中,如果有多个实例变量,那么运行的结果可能就是会出现交叉运行,如果只有一个实例变量,可能出现被后来的覆盖的现象接下来看看 demo:public class SynTestA { private int num ...原创 2019-06-22 15:14:19 · 207 阅读 · 0 评论 -
多线程之对象及变量的并发访问(三) - 多个对象多个锁
一、前述本文讲述的是多个对象访问同步方法的 demo二、多个对象多个锁在前面的文章中,讲述的都是一个对象访问方法局部变量、访问实例变量,本文是多个对象访问实例变量,读者不妨思考下,会有什么样的姐结果存在?demo 代码如下:public class SynTestA { private int num = 0; public synchronized void addA(S...原创 2019-06-22 17:22:32 · 422 阅读 · 0 评论 -
多线程之对象及变量的并发访问(四) - synchronized 方法与锁对象
一、前述我们一直都说,线程锁住的都是对象,那本文就来证明下究竟是对象还是其他的二、synchronized 方法与锁对象public class SynTest02 { public void testA(){ try { System.out.println("testA begin threadname = " + Thread.curre...原创 2019-06-22 18:21:25 · 252 阅读 · 0 评论 -
多线程之对象及变量的并发访问(五) - 数据脏读
一、前述在前面文章的学习中,我们一直都在围绕 synchronized 来讲述,在方法没有同步处理的时候,多个线程访问一个实例变量的时候,这个值已经被其他的线程更改过了,所以会出现数据脏读(dirtyRead),这个数据脏读也出现了好多次,那么本文就来看看到底是什么东西二、数据脏读...原创 2019-09-29 17:11:04 · 460 阅读 · 0 评论