java - Erstellen Sie eine nicht duplizierte Listensammlung. Was ist an diesem Code falsch?
高洛峰
高洛峰 2017-06-12 09:25:37
0
2
1071
Die Funktion

hofft, implementiert zu werden, besteht darin, eine solche Funktion fürList提供一个原子操作:若没有则添加。因为ArrayList本身不是线程安全的,所以通过集合Collections.synchronizedList将其转换为一个线程安全的类,然后通过一个辅助的方法来为Listzu erreichen.

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; } }

Ist dieser Code thread-unsicher? Wenn ja, können Sie es beweisen? Danke

高洛峰
高洛峰

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

Antworte allen (2)
伊谢尔伦

ConcurrentSkipListSet不就行了

    漂亮男人

    不重复的List,不就是个Set?,需要原子,不就是线程安全的Set?

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!