Java의 메소드를 사용하여 동기화 되었습니까?

user2344293

Java에서 메서드를 사용하여 Synchronized 사용에 대해 알아야 합니다. 아래 코드를 한 번 참조하십시오.

코드 :

public void upDateAllUsersStatus(UserDetails userDetails)
{


    for(Player p : userDetails.getPlayersList())
    {
        if(p != null)
        {
            String userId = p.getUserId();
            upDateUserStatus(userId );
        }
    }
}

public synchronized void upDateUserStatus(String name)
{           
    //here update status of user in db.
}

synchronizedmethod.에 사용 된 위의 코드는 upDateUserStatus () 위에서 동기화를 사용하여 java.util.ConcurrentModificationException 을 얻을 가능성이 있습니까?

위의 방법에서 동기화를 사용하는 용도를 제안 해 주시겠습니까?.

미리 감사드립니다.

Wyzard

경우 upDateUserStatus수정의 저장 플레이어의 목록 userDetails객체에있는 루프의 다음 반복 upDateAllUsersStatus을 던질 수 ConcurrentModificationException플레이어 목록 (에 의해 수정 되었기 때문에 upDateUserStatus그것의 존재가 (에 의해 반복하면서) upDateAllUsersStatus). synchronized키워드는 도움이되지 않습니다 : 다른 스레드의 동시 실행을 방지하지만, 같은 스레드가를 반복하는 동안 목록을 수정에서 개별 스레드를 방지하지 않습니다.

코드는하지만, 이상한보고, 나는 그것이 다른 문제가 의심 : 당신이 저장 플레이어의 목록을 반복하고 userDetails있지만, 실제로는하지 않습니다 개별 아무것도 Player개체를. upDateUserStatus동일한 userDetails객체 에 대해 여러 번 호출하기 만하면 됩니다. 당신이 의도 했 upDateUserStatus테이크하는 Player대신의 인수를 UserDetails? 그렇다면 개인 Player(아마도)이 다른 플레이어 목록을 수정할 수 없기 때문에 안전해야합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java의 메소드를 사용하여 동기화 되었습니까?

분류에서Dev

getState 메소드를 사용하여 스레드와 Java 동기화

분류에서Dev

콜백이 이미 비동기를 사용하여 호출 되었습니까?

분류에서Dev

코딩을 사용하여 jslint와 jshint에서 정의되기 전에 '$'를 수정하는 방법이 사용 되었습니까?

분류에서Dev

코딩을 사용하여 jslint와 jshint에서 정의되기 전에 '$'를 수정하는 방법이 사용 되었습니까?

분류에서Dev

메서드를 사용하여 C # 연산자 이름을 기호로 바꿀 준비가 되었습니까?

분류에서Dev

모니터 클래스를 사용하여 Java에서 스레드 동기화

분류에서Dev

Flutter를 사용하여 Firestore를 동기화하는 동안 Null에서 [] 메서드가 호출되었습니다.

분류에서Dev

기본 TaskScheduler를 사용하여 작업 간의 리소스 액세스를 동기화해야합니까?

분류에서Dev

SFINAE를 사용하여 기능을 비활성화하는 동안 정의되지 않은 동작을 생성 했습니까?

분류에서Dev

"GenerateJwt"메소드를 사용할 준비가 되었습니까?

분류에서Dev

클래스에서 메소드를 동기화하는 Java

분류에서Dev

이 기본 메소드 Java에서 무엇이 잘못 되었습니까?

분류에서Dev

Outlook Add-In의 작동이 중지되었습니다. Outlook 웹 인터페이스가 브라우저에 의해 차단 된 대화 상자를 사용하여 도메인을 확인하려고하기 때문입니다.

분류에서Dev

rsync를 사용하여 두 개의 bazel-remote-cache를 동기화 할 수 있습니까?

분류에서Dev

HTTPparty & Nokogiri를 사용하여 "nil : NilClass (NoMethodError)에 대해 정의되지 않은 메소드`css '가져 오기"

분류에서Dev

Java의 메소드를 사용하여 여러 숫자를 추가하는 방법은 무엇입니까?

분류에서Dev

여러 메소드 간의 Java 동기화

분류에서Dev

어떻게 작동합니까? "every"메소드를 사용하여 동일한 유형의 배열에있는 모든 요소를 확인하십시오.

분류에서Dev

쉘 스크립트를 사용하여 파일의 md5sum을 가져 오는 동안 권한이 거부 되었습니까?

분류에서Dev

Ruby "NoMethodError : nil : NilClass에 대해 정의되지 않은 메소드`each '"를 사용하여 메소드 오류 가져 오기

분류에서Dev

메소드의 기본 코드 앞뒤에 코드를 추가하기 위해 Java 메소드에 주석을 달 수 있습니까?

분류에서Dev

이벤트를 사용하여 지속적으로 실행되는 두 개의 스레드를 동기화하는 방법은 무엇입니까?

분류에서Dev

self.ids 메소드를 사용하여 kivy의 위젯 내부에있는 화면 요소에 액세스하려면 어떻게해야합니까?

분류에서Dev

nil : NilClass에 대한 정의되지 않은 메소드`[] '이지만 기사가 게시되었습니다.

분류에서Dev

JavaFX에서 CSS 클래스 선택기는 클래스의 일부 노드가 ID 선택기를 사용하여 다른 곳에서 선택되었을 때 작동하지 않습니까?

분류에서Dev

Java에서 out.write 메소드를 사용하여 js 코드를 삽입 할 수 있습니까?

분류에서Dev

AWS CLI를 사용하여 두 개의 Amazon 버킷을 동기화하려면 어떻게해야합니까?

분류에서Dev

Photon Unity : PunRPC를 사용하여 변수가 동기화되지 않습니다.

Related 관련 기사

  1. 1

    Java의 메소드를 사용하여 동기화 되었습니까?

  2. 2

    getState 메소드를 사용하여 스레드와 Java 동기화

  3. 3

    콜백이 이미 비동기를 사용하여 호출 되었습니까?

  4. 4

    코딩을 사용하여 jslint와 jshint에서 정의되기 전에 '$'를 수정하는 방법이 사용 되었습니까?

  5. 5

    코딩을 사용하여 jslint와 jshint에서 정의되기 전에 '$'를 수정하는 방법이 사용 되었습니까?

  6. 6

    메서드를 사용하여 C # 연산자 이름을 기호로 바꿀 준비가 되었습니까?

  7. 7

    모니터 클래스를 사용하여 Java에서 스레드 동기화

  8. 8

    Flutter를 사용하여 Firestore를 동기화하는 동안 Null에서 [] 메서드가 호출되었습니다.

  9. 9

    기본 TaskScheduler를 사용하여 작업 간의 리소스 액세스를 동기화해야합니까?

  10. 10

    SFINAE를 사용하여 기능을 비활성화하는 동안 정의되지 않은 동작을 생성 했습니까?

  11. 11

    "GenerateJwt"메소드를 사용할 준비가 되었습니까?

  12. 12

    클래스에서 메소드를 동기화하는 Java

  13. 13

    이 기본 메소드 Java에서 무엇이 잘못 되었습니까?

  14. 14

    Outlook Add-In의 작동이 중지되었습니다. Outlook 웹 인터페이스가 브라우저에 의해 차단 된 대화 상자를 사용하여 도메인을 확인하려고하기 때문입니다.

  15. 15

    rsync를 사용하여 두 개의 bazel-remote-cache를 동기화 할 수 있습니까?

  16. 16

    HTTPparty & Nokogiri를 사용하여 "nil : NilClass (NoMethodError)에 대해 정의되지 않은 메소드`css '가져 오기"

  17. 17

    Java의 메소드를 사용하여 여러 숫자를 추가하는 방법은 무엇입니까?

  18. 18

    여러 메소드 간의 Java 동기화

  19. 19

    어떻게 작동합니까? "every"메소드를 사용하여 동일한 유형의 배열에있는 모든 요소를 확인하십시오.

  20. 20

    쉘 스크립트를 사용하여 파일의 md5sum을 가져 오는 동안 권한이 거부 되었습니까?

  21. 21

    Ruby "NoMethodError : nil : NilClass에 대해 정의되지 않은 메소드`each '"를 사용하여 메소드 오류 가져 오기

  22. 22

    메소드의 기본 코드 앞뒤에 코드를 추가하기 위해 Java 메소드에 주석을 달 수 있습니까?

  23. 23

    이벤트를 사용하여 지속적으로 실행되는 두 개의 스레드를 동기화하는 방법은 무엇입니까?

  24. 24

    self.ids 메소드를 사용하여 kivy의 위젯 내부에있는 화면 요소에 액세스하려면 어떻게해야합니까?

  25. 25

    nil : NilClass에 대한 정의되지 않은 메소드`[] '이지만 기사가 게시되었습니다.

  26. 26

    JavaFX에서 CSS 클래스 선택기는 클래스의 일부 노드가 ID 선택기를 사용하여 다른 곳에서 선택되었을 때 작동하지 않습니까?

  27. 27

    Java에서 out.write 메소드를 사용하여 js 코드를 삽입 할 수 있습니까?

  28. 28

    AWS CLI를 사용하여 두 개의 Amazon 버킷을 동기화하려면 어떻게해야합니까?

  29. 29

    Photon Unity : PunRPC를 사용하여 변수가 동기화되지 않습니다.

뜨겁다태그

보관