Tôi muốn tạo một trò chơi Tic Tac Toe đơn giản, được chơi giữa những người dùng hệ thống SAP.ABAP: đồng bộ hóa đối tượng bộ nhớ chia sẻ
Tôi có một lớp CL_TTT_MANAGER với phương thức SIGNUP gán cho người chơi trò chơi. Lớp của tôi là một lớp được kích hoạt bộ nhớ chia sẻ, vì mục đích của nó là có khả năng được truy cập bởi tất cả người dùng của một hệ thống sap.
Quy trình đăng ký được thực hiện bằng một thuật toán rất đơn giản.
1: Cờ "WAITING_FOR_PLAYERS" tồn tại và được đặt thành ABAP_FALSE. ban đầu. 2: Khi người chơi đầu tiên gọi "SIGNUP", cờ được đặt thành "ABAP_TRUE". 3: Khi trình phát thứ hai gọi "SIGNUP", cờ được đặt thành "ABAP_FALSE" và phiên bản trò chơi được tạo.
Vấn đề với phương pháp SIGNUP của tôi là nó dựa vào trạng thái, cụ thể là nó phải nhớ tên của người chơi đầu tiên và điều này đạt được bằng cách sử dụng thuộc tính riêng.
Đối với bất kỳ ai trong số những người đã làm việc với các sự cố đồng thời, bạn sẽ phát hiện ra một cuộc đua dữ liệu, cụ thể là ngay sau khi người chơi thứ hai đăng ký, người thứ ba cũng đăng ký, tên của người chơi đầu tiên có thể được thay thế bằng tên của người thứ ba.
Làm cách nào để đồng bộ hóa những thứ này trong abap? Tôi có cơ chế gì cho việc này? Tôi đã không gặp phải bất cứ điều gì như thế này trong tài liệu (tôi đã được nghiên cứu chỉ trong 2 tháng). Tôi có phải thực hiện điều này bản thân mình, hoặc là có một cái gì đó để giúp tôi?
cũng SAP là một công ty (như Oracle) và ABAP là ngôn ngữ độc quyền của họ (Giống như Java) .... nhưng chỉ được sử dụng để lập trình hệ thống của họ. –