목록Java (58)
mojo's Blog
2번 실습 문제 code import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener..
아바타와 괴물 게임 만들기 code import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyLi..
wait(), notify(), notifyAll()를 이용하면 producer-consumer 문제의 스레드 동기화를 해결할 수 있다. java.lang.Object 클래스는 스레드 사이에 동기화를 위한 3개의 메소드 wait(), notify(), notifyAll() 를 제공한다. 모든 객체는 Object 클래스를 상속받기 때문에, 자바는 모든 객체가 동기화 객체가 될 수 있도록 설계하였다. wait() : 다른 스레드가 이 객체의 notify()를 불러줄 때까지 대기한다. notify() : 이 객체에 대기 중인 스레드를 깨워 RUNNABLE 상태로 만든다. 2개 이상의 스레드가 대기 중이라도 오직 한 개의 스레드만 깨워 RUNNABLE 상태로 한다. notifyAll() : 이 객체에 대기 중인..
Synchronized를 사용하여 잘 동작하는 직계판을 응용하는 code import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import..
main 스레드 정보 출력 code public class ThreadMainEx { public static void main(String[] args) { long id = Thread.currentThread().getId(); String name = Thread.currentThread().getName(); int priority = Thread.currentThread().getPriority(); Thread.State s = Thread.currentThread().getState(); System.out.println("현재 스레드 이름 = "+name); System.out.println("현재 스레드 ID = "+id); System.out.println("현재 스레드 우선순위 값 ..
Thread를 상속받아서 1초 단위로 출력하는 타이머 스레드 만들기 import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import ja..