수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

소스 분석 중에 궁금한 점이 있어서 올립니다.ㅜㅜ

솔길

2023.04.01

일단 프로그램이 돌아가는 방식은 알겠어요..근데 세밀하게 들어가다 보면 궁금한게 생기네요 ㅜㅜ
주석 부분은 제가 이해한 부분이고 소스 밑에 질문을 올리겠습니다.
class Counter { private static int count = 0; //상수 count =0으로 초기화 public static final synchronized void increment() { // 동기화 메소드 선언 //위의 상수를 받아오기 위해서 static 선언, 한개의 주소값으로 다른 곳에서 못쓰게 final 선언 count++; } public static final synchronized int getCount() { // 동기화 메소드 선언 return count; // 메소드가 종료되며 count를 반환//위increament()와 마찬가지로 선언 // 위의 메소드 호출 시 count 값을 반환 }}
class Dog extends Counter { // Counter 상속 public Dog() { } // 생성자 (인자값과 {}안의 내용이 없습니다.) // 죄송하지만 {}안의 값은 뭐라하나요??갑자기...ㅠ public void woof() { increment(); } //woof메소드 선언 increament()호출}
class Cat extends Counter { public Cat() { } public void meow() { increment(); } //위 Dog 클래스와 같습니다.}
public class Ruckus { public static void main(String[] args) { // 메인 메소드 Dog dogs[] = { new Dog(), new Dog() }; // Dog클래스 자료형 dogs[]배열선언 , // 배열 안의 값은 Dog()객체 2개 초기화 for (int i = 0; i dogs.length; i++) //dogs의 길이값 2만큼 for문을 돌립니다. dogs[i].woof(); // dogs[0], dog[1]의 값에 woof를 대입. -count ++ 가 2번 도니깐 count 의 값은 2 Cat cats[] = { new Cat(), new Cat(), new Cat() }; for (int i = 0; i cats.length; i++) cats[i].meow(); //위와 마찬가지로 System.out.print(Dog.getCount() + woofs and ); // Dog안의 상속 받은 getcount()를 호출 //위의 getCount()메소드를 가보면 count를 반환하기 때문에 for문 2개가 위의 돌아갔기 때문에 //Dog.getCount()값은 5입니다. System.out.println(Cat.getCount() + meows); //위와 마찬가지 입니다. 똑같이 Cat.getCount()의 값은 5 }}
제가 알고 있는 것과 궁금한 점을 말씀드리겠습니다.1.synchronized는 동기화하는 부분인데 . 스레드에서 동시 실행되면 문제가 생길 수 있는 부분을 JVM에서 락을 걸어서 스레드를 돌리는 순서를 정한다고 알고 있습니다.위의 소스에서 문제가 생길 수 있는 부분이 어디인가요??ㅜㅜㅜㅜㅜ위의 Count 클래스에 static finalsynchronized를 쓴 이유도 궁금합니다.
2.위의 소스에서 스레드가 사용되는 부분이 있나요?? 있다면 어디 부분인지 알고 싶습니다.
3.Dog dogs[] = { new Dog(), new Dog() }; 이 부분은 배열에 객체를 넣는 부분인데. 콜렉션이 쓰인 것 같습니다. 이 부분이 콜렉션이 아니라면 무엇인가요? 또 콜렉션이 맞다면 용도를 알고 싶습니다.
4. 마지막 으로 저에게 공부가 될 만한 부분좀 알려주시면 안될까요 ??? 그리고 위의 소스가 나타내고자 하는 점은 스레드의 동기화인가요?? 말고 또 다른게 있다면 그 것도 알고 싶습니다.
부탁드리겠습니다.ㅜㅜㅜ

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 꽃큰

    그 밑에 고양이 울음을 출력하려면 이미 increamentㅇㅔ Count가 증가되서 5가 나오네요 프로그램이 총횟수를 알려는 프로그램 이라면 개와 고양이 울음 소리를 각각 출력하게 하지 않았을텐데
    위 소스를 각각 2 개울음과 3 고양이울음으로 출력되게 하려면 어떻게 해야할까요....ㅜㅜ

  • 비마중

    우와!! 이제 뭔가 프로그램이 요구하는 바를 알것같아요
    하지만 위 소스는 5개울음 과 5번 고양이울음 으로 답을 내리는데 잘못된 소스인가요 ...
    각각 계산이 안되네요 Dog 의 for문 밑에 프린트 문을 놓으면 개울음 횟수는 나오는데

  • BlackCat

    클래스 이름이 Ruckus 라면... 실생활에서 그렇듯이 여기저기서 개 고양이가 막 울어대야 어떤넘이 몇번을 울었는지 알기 어렵겠져? 그때 우는것을 순차적으로 cache 하게 만드는것이 synchronized 입니다.

  • 메이

    ㅜ_ㅜ 이 소스의 중점은 뭘까요???? ㅜㅜ

  • 여자

    1.2 : 위 소스는 스레드 사용은 없구요.. synchronized 는 동기화 method 로 선언하는 것은 맞지만 위 소스상으로는 synchronized 로 선언하지 않아도 같은 값이 프린트 될것입니다.
    3. 음.. 머라설명해야할까여... 용어상으로는 콜렉션이라 할 수 있는데요.. 음 그냥 배열입니다. ㅎㅎ
    4. 어떤것을 배우고 싶은지 먼저 곰곰히 생각해 보세요.. 무작정 JAVA 괜찮은 책 하나 열공해도 나쁘지 않습니다.

번호 제 목 글쓴이 날짜
2699380 메뉴가 계단식으로 나타나요.. ㅠ.ㅠ (5) 스릉흔다 2025-06-25
2699354 영문 웹폰트 관련 질문입니다!!! (1) 치킨마루 2025-06-25
2699329 윈도우 미디어 플레이어 URL 질문!!! (1) 제철 2025-06-25
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com