我得根據字符串實現一些同步算法。我的意思是兩個線程必須同步,並且這對線程都依賴於字符串值(字符串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