A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

真心求教!!!:)

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 鼓励一下!

查看全部评分

2 个回复

正序浏览
谢了{:soso_e100:}
回复 使用道具 举报
我不是什么高手 ,我只能说这是按着我的所学给你解释解释。

格式1
synchronized(对象)
{
        //需要被同步的代码
}
格式2
同步方法,就是在方法声明上加同步关键字。
具体我在给你说一下:
(1)产生线程安全的原因
                A:多个线程访问出现延迟。
                B:线程访问的随机性

                注:线程安全问题在理想状态下,不容易出现,但一旦出现对软件的影响是非常大的。
        (2)如果判断一个线程程序有没有安全问题呢?
                A:多个线程操作共享数据
                B:这个操作是分多条语句执行的。
        (3)解决线程安全问题的方式
                A:同步代码块
        ( 4)同步代码块问题:
                A:同步代码块的锁是任意同一对象。
                B:当你发现你把某个程序加了同步后,还没有解决线程安全问题。
                  这个时候,你需要考虑你使用的是否是同一把锁(对象);
        (5)练习分析
                A:自己分析线程安全问题怎么出现的。
                B:自己分析同步代码块是如何解决线程安全问题的。
同步方法
        A:当一个方法的方法体都被同步代码块给包围起来了,
          我们就可以使用另外一种方式来表示。就是同步方法。
        B:同步方法的使用格式非常简单。就是在方法声明上加同步关键字。
        C:同步方法的锁是什么呢?如何测试的呢?
          同步方法的锁是this对象。
          通过在run里面同时使用同步方法和同步代码块来测试的。
        D:静态方法的锁是什么呢?
          静态方法的锁是当前类的class文件描述类对象

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马