你把他们放在 synchronized(c) 之外了怎么可能鎖住呢。
synchronized(obj) 是同步代码锁意思是最多只有一个线程可以运行此代码块。
不要将线程与函数弄混了
两个线程可以同时运行同一个对象的函數,但不能同时使用被锁住的代码块
希望这些帮助你明白过来
synchronized外线程是可以并行的,synchronized内就只能一个线程一个线程进了你可以理解为很哆车在路上跑,没有被锁住的代码块就是多行道大家都可以走。被锁住的代码块就是一个只容一辆车经过的小隧道必须前一辆穿过去叻,后一辆才允许进去
不是位置,主要是synchronized外还是synchronized内跟关卡城门一样,在里面根在外面不是一个概念