我得根据字符串实现一些同步算法。我的意思是两个线程必须同步,并且这对线程都依赖于字符串值(字符串A的一对线程,字符串B的一对线程,等等)。目标C等效于intern()in java
在java中,我可以使用method intern实现算法以获得由两个线程共享的单个锁对象。 Java在jvm内置池中提取所有文件,interne允许将任何动态创建的字符串转换为池中的文件。
我明白there is also a pooling mechanism in Objective C。
但是,是否有任何与Java intern()等价的方法,即将普通字符串转换为字符串常量池中的字符串的方法。为了获得对这个唯一字符串的引用,我的两个线程都可以在同一个对象上同步。
我知道有一些解决办法,但他们都意味着很多字符串比较,我想避免。 (虽然我相信实习生只是以一种优化的方式...)
用更笼统的术语来解释我的问题:我想避免有一个将字符串映射到锁的字典。 Java允许我这样做,这要感谢实习生,因为String litteral(合并)将成为锁。有什么等价物或我必须使用这张地图吗?
感谢乡亲, 斯特凡
我不认为这是一个好主意,通过字符串文字进行同步。在字符串变量OK上,但是在字面上,我不知道......但也许我错了。 –
这可能值得描述你的更高层次的目标是什么。一般来说,你想达到什么目的?你的问题听起来像是你已经有了一个非常具体的解决方案,可以通过Objective-C/Cocoa中的其他方式更好地解决这个问题。 – DarkDust
在最后更新。 – Snicolas