JAVA 다중 스레드 - 클래스 잠금(여러 객체가 동일한 잠금)

이 종류의 모든 대상이 하나의 방법의 자물쇠를 공유하려면 방법을static로 설정하고synchronized 자물쇠를 추가해야 한다. 이 자물쇠는 클래스에 속하고 모든 이 종류의 대상은 이 자물쇠를 공유한다.
이전의 계정 클래스를 계속하고 코드를 수정합니다
계정 클래스:
package com.ck.thread;

import java.math.BigDecimal;

public class Account {

    public static synchronized void add(BigDecimal amount , String name) {

        System.out.println(name + ",  , : " + amount);

        try {

            Thread.sleep(2000);

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

        System.out.println(name + ",  , : " + amount);

    }   

}

같은 충전 클래스도 수정:
package com.ck.thread;



import java.math.BigDecimal;



public class CzThread extends Thread{



    private Account account;



    private String accountName;

   

    public CzThread(Account account) {

        this.account = account;

    }
   

    @Override

    public void run() {

        account.add(new BigDecimal("100"), accountName);

    }


    public Account getAccount() {

        return account;

    }


    public void setAccount(Account account) {

        this.account = account;

    }


    public String getAccountName() {

        return accountName;

    }


    public void setAccountName(String accountName) {

        this.accountName = accountName;

    }

}

그리고 메인 라인을 테스트합니다.
package com.ck.thread;


public class MainThread {


    public static void main(String[] args) throws InterruptedException {

        /**

         *  , 

         *

         */

        Account account1 = new Account();

        Account account2 = new Account();

       

        CzThread t1 = new CzThread(account1);

        t1.setAccountName(" ");

        t1.start();

        CzThread t2 = new CzThread(account2);

        t2.setAccountName(" ");

        t2.start();

    }


}

실행 결과:
 ,  , : 100

 ,  , : 100

 ,  , : 100

 ,  , : 100

 
우리는 이사가 장삼이 충전이 끝나야 충전에 들어갈 수 있다는 것을 보았다. 사실 이런 충전 방법은 현실에서 만약에 그렇다면 시스템이 이미 고소를 당했을 것이다. 우리는 단지 테스트 시범을 보였을 뿐이다. 사람들이 클래스의 자물쇠를 더욱 잘 이해하도록 하기 위해 동기화하는 방법에static 키워드를 추가했다. 그러면 이 자물쇠는 이런 종류에 속한다. 즉, 이 종류의 모든 대상에 작용하는 것이다.

좋은 웹페이지 즐겨찾기