java - 建立一個不重複的List集合,這個程式碼有什麼問題?
高洛峰
高洛峰 2017-06-12 09:25:37
0
2
1069

希望實作的功能是為List提供一個原子運算:若沒有則加入。因為ArrayList本身不是線程安全的,所以透過集合Collections.synchronizedList將其轉換為線程安全的類,然後透過一個輔助的方法來為List實作這麼個功能。

class BadListHelper  { public List list = Collections.synchronizedList(new ArrayList()); public synchronized boolean putIfAbsent(E x) { boolean absent = !list.contains(x); if (absent) list.add(x); return absent; } }

這個程式碼是線程不安全的嗎?如果是,可以證明一下嗎?謝謝

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆 (2)
伊谢尔伦

ConcurrentSkipListSet不就行了

    漂亮男人

    不重複的List,不就是個Set? ,需要原子,不就是執行緒安全的Set?

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!