2011-10-22 25 views

Trả lời

10

Nếu bạn có thể nâng cấp lên Groovy 1.7.3 bạn có thể sử dụng việc chuyển đổi Synchronized AST để thay thế. Bạn có thể sử dụng chú thích trên các cá thể và các phương thức tĩnh. Chú thích sẽ tạo một biến khóa trong lớp của bạn (hoặc bạn có thể sử dụng biến hiện có) và mã được đồng bộ hóa trên biến khóa đó.

Việc sử dụng khối synchronized nên được ưu tiên hơn việc thêm từ khóa vào phương thức. Nếu bạn sử dụng từ khóa synchronized trên phương pháp bạn đồng bộ hóa trên this có nghĩa là tất cả các chủ đề khác muốn truy cập bất kỳ phương thức nào trong lớp của bạn phải đợi cho đến khi khóa lại miễn phí.

import groovy.transform.Synchronized 

class YourClass { 
    @Synchronized 
    static Map getMap(def fileName) { 
     ... 
    } 
} 
+0

bản nâng cấp hiện không có kế hoạch, nhưng thông tin được cung cấp chắc chắn rất hữu ích, có nghĩa là trong tiếng 1.7.2 tôi có thể sử dụng kiểu đồng bộ java, – anish

2

Kể từ Groovy 1.7.3 chúng ta có một sự biến đổi AST mới: @Synchronized

Các vấn đề liên quan