synchronized使用
在一个方法内部使用如下代码:
public void m5() {
        synchronized (Test1.class) {
            System.out.println("m5");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
等同于如下代码:
public synchronized static void m5() {
            System.out.println("m5");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    }
以上两种情况是全局所有实例对象共用一个同步锁;
而如下两组代码则是每个实例对象使用单独的同步锁,如下:
 public void m6() {
        synchronized (this) {
            System.out.println("m5");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
 public synchronized  void m6() {
            System.out.println("m5");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    }
synchronized使用的更多相关文章
- java 多线程 Synchronized方法和方法块 synchronized(this)和synchronized(object)的理解
		synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块. 1. synchronized 方法:通过在方法声明中加入 synchronized ... 
- 单例模式中用volatile和synchronized来满足双重检查锁机制
		背景:我们在实现单例模式的时候往往会忽略掉多线程的情况,就是写的代码在单线程的情况下是没问题的,但是一碰到多个线程的时候,由于代码没写好,就会引发很多问题,而且这些问题都是很隐蔽和很难排查的. 例子1 ... 
- Thread 学习记录 <1>  -- volatile和synchronized
		恐怕比较一下volatile和synchronized的不同是最容易解释清楚的.volatile是变量修饰符,而synchronized则作用于一段代码或方法:看如下三句get代码: int i1; ... 
- synchronized使用说明
		好久没有更新博客了,今天试着用简单的语言把synchronized的使用说清楚. synchronized是什么? synchronized是用来保证在多线程环境下代码同步执行的可重入的互斥锁.所谓互 ... 
- 【Java并发系列04】线程锁synchronized和Lock和volatile和Condition
		img { border: solid 1px } 一.前言 多线程怎么防止竞争资源,即防止对同一资源进行并发操作,那就是使用加锁机制.这是Java并发编程中必须要理解的一个知识点.其实使用起来还是比 ... 
- (转)Lock和synchronized比较详解
		今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不 ... 
- Synchronized同步性与可见性
		Synchronized是具有同步性与可见性的,那么什么是同步性与可见性呢? (1)同步性:同步性就是一个事物要么一起成功,要么一起失败,可谓是有福同享有难同当,就像A有10000去银行转5000给身 ... 
- 基于synchronized 或 ReadWriteLock实现 简单缓存机制
		package cn.xxx.xxx; import java.util.HashMap; import java.util.Map; import java.util.concurrent.lock ... 
- 【Java并发编程实战】-----synchronized
		在我们的实际应用当中可能经常会遇到这样一个场景:多个线程读或者.写相同的数据,访问相同的文件等等.对于这种情况如果我们不加以控制,是非常容易导致错误的.在java中,为了解决这个问题,引入临界区概念. ... 
- Lock、ReentrantLock、synchronized、ReentrantReadWriteLock使用
		先来看一段代码,实现如下打印效果: 1 2 A 3 4 B 5 6 C 7 8 D 9 10 E 11 12 F 13 14 G 15 16 H 17 18 I 19 20 J 21 22 K 23 ... 
随机推荐
- 设置全局git忽略文件   gitconfig
			cat ~/.gitconfig [user] email = yuanhuikai@liquidnetwork.com name = yuanhuikai[core] excludesfile = ... 
- 【emWin】例程二十:窗口对象——Dropdown
			简介: DROPDOWN 小工具用于从具有若干栏的列表中选择一个元素,它以非打开状态显示当前选择的项目.如果用户打开DROPDOWN 小工具,就会出现一个选择新项目的LISTBOX. 触摸校准(上电可 ... 
- precision  scale
			precision意为“精密度.精确”(精度),表示该字段的有效数字位数了. scale意为“刻度.数值范围”(),表示该字段的小数位数. 举个简单的例子 123.45:precision = 5 , ... 
- Java知多少(45)未被捕获的异常
			在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public static void ma ... 
- Scala学习笔记——内建控制结构
			Scala的内建控制结构包括:if.while.for.try.match和函数调用 1.if表达式 //常见的写法 var filename = "name" if (!args ... 
- react跳转url,跳转外链,新页面打开页面
			react中实现在js中内部跳转路由,有两种方法. 方法一: import PropTypes from 'prop-types'; export default class Header exten ... 
- 自windows8以后,所有版本(专业版、企业版、旗舰版)都支持从 vhd 启动
			而在windows 7 中,只有:企业版.旗舰版: 支持 从 vhd 启动! 
- [AWS] OAuth2.0
			Ref: 理解OAuth 2.0 若干专有名词: (1)Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的&qu ... 
- QT开发环境安装配置教程
			QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ... 
- js中的try/catch
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
