1. 今天在测试多线程死锁的时候, 用了两个NSString类型的对象作为@synchronized(obj)括号中的参数, 但是却出现了奇怪的结果, 不论如何都不会发生死锁, 后来经过测试, 发现NSString的一个意外的现象。
代码1:
多次测试,代码1的执行结果都为: 。出人意料,为什么不发生死锁?看了代码2就明白了。
代码2:
多次测试, 代码2的打印结果为: , 也就是说, 上面创建的4个对象都是同一个对象。
代码3:
代码3的打印结果为: , 意料之中。
不知其他对象会不会有这种现象, 希望大神能解释一下这种现象....