본문 바로가기

자바 기초11

[JAVA Project] 미니 프로젝트 리듬게임 만들기 4 - 시작하기버튼, main곡화면설정 시작 버튼으로 start 버튼과 quit 버튼을 그림판으로 만들어줬다. 맨아래에 첨부파일 넣어놓겠다. start 버튼을 누르면 main 화면으로 바뀌도록 설정한다. 이 또한 첨부파일에 첨부해두었다. wallpaperswide.com/ 그리고 게임으로 실행할 음악 파일을 3개 다운로드 해줬다. Bensound 사이트를 이용했다. www.bensound.com/royalty-free-music/3 Royalty Free Music by Bensound | Stock Music Popular Newest Shortest Longest www.bensound.com 또 start 버튼을 누른 후 실행할 음악을 고를 수 있도록 목록 이미지와 음악을 누르면 실행하는 동안 나타날 배경이미지를 다운받아주었다. 이 또한.. 2021. 4. 19.
[JAVA 기초] 쓰레드(Thread) 4 - 쓰레드의 상태 싸이클과 제어 메서드 1 쓰레드의 상태 싸이클 New 상태 : "new MyThread();"한 상태, 아직은 JVM은 이를 'Thread'라고 생각하지 않음. Runnable 상태 : "start();" 한 상태와 Waiting 상태에서 (ex. interrupt(),notify(),notifyall() 해줬을 때 이제 JVM은 이를 'Thread'라고 생각함. JVM의 '쓰레드 스케줄러'에 의해서 선택될 수 있는 상태. Running 상태 : "run();" 가 실행되고 있는 상태. Blocked 상태 : Waiting 상태라고도 한다. (ex. sleep(), join() wait() 등) 쓰레드가 잠시 정지된 상태 Dead 상태 : Thread 실행에 필요한 관련 정보들이 메모리로부터 소멸되어 사라진 상태. 쓰레드가 .. 2021. 4. 13.
[JAVA 기초] 쓰레드(Thread) 3 - 동기화(Synchronized)와 데몬쓰레드(Daemon Thread) 1 동기화(Synchronized) 두 쓰레드가 같은 프로세스 내의 자원을 공유하기 때무네 서로의 작업에 영향을 준다. 예를 들어 통장에 10만원이 있고 다른 두 ATM기기에서 돈을 꺼내려 한다. 두 ATM 기기에서 만약 6만원 6만원씩 꺼낼 수도 있기 때문에 동시에 출금이 가능하게 해서는 안된다. 따라서 한 ATM 기기를 사용할때 락을 걸어 다른 ATM에서 접근하지 못하도록 해야할 것이다. 이처럼 한 쓰레드에서 사용하는 자원을 다른 쓰레드가 간섭하지 못하도록 락(rock)을 거는 것을 쓰레드의 동기화라고 한다. 여러개의 메서드들이 공유 객체를 사용할 때 동기화를 시켜줬을 경우 0.000001초라도 메서드가 먼저 실행되면 해당 객체에 사용권을 얻게된다. 이 사용권을 모니터링 락이라고 부른다. 이렇게 되면.. 2021. 4. 13.
[JAVA 기초] 쓰레드(Thread) 2 - 쓰레드 생성방법2 와 쓰레드 우선순위(setPriority) 1 Thread(쓰레드) 생성 쓰레드는 기본적으로 1개의 쓰레드를 갖고 있다. 따라서 순차적 구조로 위에서 시작해 아래로 코드를 실행시킨다. 여기서 쓰레드를 새로 생성시키게 되면 2개 이상의 코드를 동시에 실행시킬 수 있다. 쓰레드의 생성방법 2 1. implements Runnable 한 클래스를 정의. 2. run() 메서드를 오버라이드. 3. Runnable 객체 생성 4. Thread 객체 생성하고 생성자 호출시 Runnalble 객체의 참조값을 생성자 파라미터에 담아줌. 5. Thread 객체.start() 호출. 쓰레드를 생성하는 방법이 두가지인 이유는 자바가 다중상속이 불가하기 때문이다. 따라서 어떤 클래스를 상속받는 클래스에 쓰레드를 적용해야 할 경우 위의 방법으로 쓰레드를 생성한다. Ex.. 2021. 4. 12.