• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
tanshoudong
博客园 首页 新随笔 联系 订阅 订阅 管理

2018年4月9日

volatile(一)
摘要: 在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念: 1.原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。举个例子, 假若一个线程执行到这个语句时,我暂且假设为一个32位的变量赋值包括两个过 阅读全文
posted @ 2018-04-09 19:52 tanshoudong 阅读(200) 评论(0) 推荐(0)
 
synchronized(九)
摘要: 在Java中是有常量池缓存的功能的,就是说如果我先声明了一个String str1 = “a”; 再声明一个一样的字符串的时候,取值是从原地址去取的,也就是说是同一个对象。这也就导致了在锁字符串对象的时候,可以会取得意料之外的结果(字符串一样会取得相同锁)。 package com.bjsxt.ba 阅读全文
posted @ 2018-04-09 16:45 tanshoudong 阅读(112) 评论(0) 推荐(0)
 
synchronized(八)
摘要: package com.bjsxt.base.sync006;/** * 同一对象属性的修改不会影响锁的情况 * @author alienware * */public class ModifyLock { private String name ; private int age ; publi 阅读全文
posted @ 2018-04-09 15:55 tanshoudong 阅读(122) 评论(0) 推荐(0)
 
synchronized(七)
摘要: package com.bjsxt.base.sync006; /** * 死锁问题,在设计程序时就应该避免双方相互持有对方的锁的情况 * @author alienware * */public class DeadLock implements Runnable{ private String 阅读全文
posted @ 2018-04-09 15:37 tanshoudong 阅读(107) 评论(0) 推荐(0)
 
synchronized(六)
摘要: package com.bjsxt.base.sync006;/** * 锁对象的改变问题 * @author alienware * */public class ChangeLock { private String lock = "lock"; private void method(){ s 阅读全文
posted @ 2018-04-09 12:14 tanshoudong 阅读(95) 评论(0) 推荐(0)
 
synchronized(五)
摘要: package com.bjsxt.base.sync005;/** * synchronized的重入 * @author alienware * */public class SyncDubbo2 { static class Main { public int i = 10; public s 阅读全文
posted @ 2018-04-09 11:18 tanshoudong 阅读(113) 评论(0) 推荐(0)
 
synchronized(四)
摘要: package com.bjsxt.base.sync005;/** * synchronized的重入 * @author alienware * */public class SyncDubbo1 { public synchronized void method1(){ System.out. 阅读全文
posted @ 2018-04-09 11:08 tanshoudong 阅读(133) 评论(0) 推荐(0)
 
synchronized(三)
摘要: package com.bjsxt.base.sync003; /** * 对象锁的同步和异步问题 * @author alienware * */public class MyObject { public synchronized void method1(){ try { System.out 阅读全文
posted @ 2018-04-09 10:57 tanshoudong 阅读(157) 评论(0) 推荐(0)
 
synchronized(二)
摘要: package com.bjsxt.base.sync002;/** * 关键字synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁, * 所以代码中哪个线程先执行synchronized关键字的方法,哪个线程就持有该方法所属对象的锁(Lock), * * 在静态方法上加syn 阅读全文
posted @ 2018-04-09 10:47 tanshoudong 阅读(125) 评论(0) 推荐(0)
 
synchronized(一)
摘要: /** * 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。 * synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区" * @author alienware * */publ 阅读全文
posted @ 2018-04-09 10:31 tanshoudong 阅读(105) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3