thefansofjay 2015-12-02 08:30 采纳率: 100%
浏览 3126

下面两个方法同步吗,请说明理由,有什么方法可以验证?

class Test

{
synchronized static void say Hello3()
{
}
synchronizedvoid getX()
{}
}

  • 写回答

6条回答 默认 最新

  • sea-lavender 2015-12-02 11:43
    关注

    额 首先关键字要写到返回值类型之前。然后你可以开两个现成写个简单的加减法案例看看,———北乔峰

    评论
  • xq_5683_5683 2015-12-02 16:09
    关注

    应该不会吧,同步貌似不在主线程中,我也不太清楚,打印日志看看

    评论
  • wohenni0931 2015-12-02 16:34
    关注

    这个两个方法的执行互不影响。
    是否同步就是不同的线程能不能在同一时间对同一方法进行访问。

    评论
  • fangyaoyu 2015-12-02 16:42
    关注

    我的理解应该是同步的,这两个方法的synchronized关键字表示对Test.class进行加锁,而我们知道内存中Test.class只会保留一份。
    关于如何验证,可以在sayHello3方法中写一个循环,负责打印1到100,在getX方法中也写一个循环,负责打印101到200,然后自己构造多个线程,随机执行这两个函数中的一个,如果两次打印没有交叉出现,则表示同步(需要多次试验)。

    评论
  • l332041721 2015-12-02 17:16
    关注

    我不理解楼主所说,什么叫这两个方法同步,我的理解是:synchronized你用来锁住两个方法:sayHello3(),getX()。那么这两个方法体,代码执行过程中
    只允许一个线程位于方法体里,其他想执行方法的线程必须等待当前线程退出才可以。

    评论
  • 喜欢吃一口烤肉的啵啵 博客专家认证 2015-12-02 19:25
    关注
    现实应用如下场景:
    
    一个人名叫王X的人 暗地销售火车票,数量为 SUM=1000;
    
    某个时刻  用户甲从他那里购买了2张。
    
    某个时刻  用户乙从他那里购买了4张。
    
    某个时刻  用户丙从他那里购买了7张。
    
    ...............
    
    购买者必须轮流购买火车票。
    
    这是现实。
    
    回归到代码吧。
    
    购买操作对应于下面这个函数。
    synchronized static void getProduct()
    {
    
    }
    
    这就是同步,在多线程中,只允许一个线程(购买者)访问此资源(产品)以实现现实当中轮流购买的效果。
    
    如果不同步会怎样???
    
    回看上面的甲乙丙的购买过程,如果不进行同步
    
    现在来了个和用户丙同一时刻购买者用户丁。
    
    此时会怎样呢? 
    
    这就是资源抢夺情况。
    
    “同”字是指协同、协助、互相配合。
    
    可理解为线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,
    于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。
    
    
    提示:synchronized 非常影响效率,能不锁整个函数的尽量不要锁整个函数。
    
    

    展开全部

    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥50 如果使用python进行ERA5 10米风场预报检验
  • ¥15 navicat解析mysql密码
  • ¥15 SDAPI(关键词-table)
  • ¥15 unity安卓打包出现问题
  • ¥15 爱快路由器端口更改错误导致无法访问
  • ¥20 安装catkin时遇到了如下问题请问该如何解决呢
  • ¥15 VAE模型如何输出结果
  • ¥15 编译python程序为pyd文件报错:{"source code string cannot contain null bytes"
  • ¥20 关于#r语言#的问题:广义加行模型拟合曲线后如何求拐点
  • ¥15 fluent设置了自动保存后,会有几个时间点不保存
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部