zoukankan      html  css  js  c++  java
  • Java多线程编程核心技术,第二章,对象和变量并发访问

    1,方法内部变量是线程安全的

    2,实例变量非线程安全

    3,synchronized是锁对象不是锁方法(锁对象是可以访问非synchronized方法,不可访问同个和其他synchronized方法

    4,锁住对象的时候,可以重复获得自己的锁,称可重入锁

    5,在父子级对象的两个方法,可重入锁有效

    6,synchronized出现异常会终止释放锁

    7,sleep作为静态方法,用对象调用效果也一样(不会sleep调用的对象)只会sleep当前线程

    8,子类重写同步方法,synchronize不会继承下去

    9,synchronized快也锁对象

    10,synchronized(x),x不是同一个对象的时候(私有变量,两个对象)方法是异步的,(存疑存在x是共有变量不锁方法,两个synchronized异步不同步:解决,x不同,锁不同,看11

    11,synchronized(x),x不同this争锁,也不和其他对象争锁,换种角度是对象没锁

    12,静态方法加锁就是对class文件加锁,也就是class锁住,对象没有锁住,对象锁是可以异步的,synchronized(xxx.class)同理

    13,synchronized(x),x少用string,因为有常量池的影响,容易误会锁了其他块

    14,synchronized(x),不能像对象锁那样取得其他锁权限

    15,volatile,https://blog.csdn.net/gongpulin/article/details/51211616

  • 相关阅读:
    2016总结
    centos7安装后的防火墙问题
    推荐一个静态页面生成工具-mkdocs
    shell中单引号、双引号、反引号的区别
    git 出现502错误后用depth一步一步来
    ./test.sh . ./test.sh source ./test.sh的区别
    终端内容输出的同时保存到文件 tee
    nginx出现的403错误
    ubuntu下wine操作usb串口
    tmux的使用
  • 原文地址:https://www.cnblogs.com/vhyc/p/9170791.html
Copyright © 2011-2022 走看看