Tôi có nhiều chủ đề xử lý sự kiện. Tôi muốn gán dấu thời gian nano giây cho mỗi sự kiện. Nó phải là một id duy nhất, mặc dù. Vì vậy, trong trường hợp kỳ lạ mà hai sự kiện đến như vậy mà họ sẽ được chỉ định cùng một dấu thời gian, tôi muốn một trong số họ được tăng thêm một nano giây. Cho rằng độ chính xác thực sự không phải ở cấp độ nano giây, đó là ok như xa như bản chất tem thời gian của hệ thống.Id dấu thời gian duy nhất hiệu suất cao cho nhiều chủ đề trong Haskell
Trong một chuỗi, đây là một vấn đề nhỏ. Nhưng qua nhiều chủ đề, nó trở nên khó khăn hơn. Hiệu suất là cực kỳ quan trọng vì vậy ý tưởng về sự đồng bộ ngây thơ trên một loại máy phát id tiêu biểu có vẻ như nó sẽ chặn quá nhiều.
Có cách tiếp cận nào giải quyết vấn đề này với khóa tối thiểu hoặc không khóa không?
@ehird: Vui lòng không thực hiện các thay đổi không quan trọng đối với bài đăng của tôi, thay vào đó hãy đăng nhận xét nếu bạn có nội dung cần thêm. –
Xin lỗi, tôi cảm thấy sự thay đổi mà tôi đã thực hiện là đủ tầm thường nhưng sau đó lại thấy thêm hai lỗi nữa trước khi lưu. Hiện tại, 'getUnique' luôn trả về' ⊥' và 'counter' có thể được gạch chân thành các biểu thức khác, nhân đôi biến và phá vỡ mã.Ngoài ra, nếu cả hai điều này đã được cố định, thì 'getUnique' sẽ có một rò rỉ không gian do các khối xây dựng trên các lần thực thi liên tiếp. (BTW, mô-đun 'Data.Unique' chuẩn thực sự cung cấp API này.) – ehird
@ehird: Đó chính xác là loại thông tin mà tôi muốn biết, cảm ơn. –