thread ch03 JoinTest package ch03; public class JoinTest extends Thread { int start; int end; int total; public JoinTest(int start, int end) { this.start = start; this.end = end; } @Override public void run() { int i; for (i = start; i Java/Excercise 2021.09.08
thread ch03 priorityTest package ch03; Thread.MIN_PRIORITY(1)~ Thread.MAX_PRIORITY(10) 디폴트 우선 순위 : 5 우선 순위가 높은 thread가 cpu의 배분을 받을 확률이 높다. //setpriority(), getpriority() class PriorityThread extends Thread { @Override public void run() { int sum = 0 ; Thread t = currentThread(); System.out.println(t + "start"); for (int i = 0; i < 1000000; i++) { sum += i; } System.out.println(t.getPriority() + " : end"); //현재 디폴트 순위가 어.. Java/Excercise 2021.09.08
thread ch02 SharedResource package ch02; 작업자들이 자원(데이터)를 공유하는 상황일 때 처리하는 방법 class BankAccount{ private int money = 100_000; //getter public int getMoney() { return this.money; } //setter public void setMoney(int money) { this.money = money; } //입금 기능 public void saveMoney(int money) { synchronized (this) { //10만원 상태 int currentMoney = getMoney(); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrac.. Java/Excercise 2021.09.08
thread ch01 RunnableTest2 package ch01; import javax.swing.JFrame; class MyRunnable2 extends JFrame{ int grade = 10; //내부 익명 객체를 변수에 담아서 사용 하는 방법 ***실무**** Runnable runable = new Runnable() { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.print("-"); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); }0.5초 예외상황이 발생 Thread.sleep(500); 하게되면 쓰레드르 잠들게 했을때 못깨어나는 경우가 생김(화면.. Java/Excercise 2021.09.08
thread ch01 RunnableTest1 package ch01; import javax.swing.JFrame; //Runnable 인터페이스를 구현하여 쓰레드 만들기 class MyRunnable1 extends JFrame implements Runnable{ @Override public void run() { for (int i = 0; i < 200; i++) { System.out.print(i + "\t"); } } } public class RunnableTest1 { public static void main(String[] args) { MyRunnable1 myRunnable1 = new MyRunnable1(); //사용방법 //Runnable 구현한 객체는 Thread를 생성해서 매개 변수에 담고 쓰레드를 시작한다.(S.. Java/Excercise 2021.09.08
thread ch01 ThreadTest3 package ch01; class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 20; i++) { System.out.println(i + " : " + Thread.currentThread()); //현재 무슨 메서드가 작동중인지 } } } public class ThreadTest3 { public static void main(String[] args) { //문제 1 쓰레드 3개 생성 //쓰레드 start() 호출 MyThread thread1 = new MyThread(); MyThread thread2 = new MyThread(); MyThread thread3 = new MyThread(); thre.. Java/Excercise 2021.09.08
래퍼클래스 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있습니다. 이럴 때에 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 합니다. public class Wrapper_Ex1 { public static void main(String[] args) { Integer num = new Integer(17);.. Java/정리 2021.09.07
Thread Thread 란? 하나의 프로세스는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread 이다. Thread Status 멀티 Thread 프로그래밍에서의 동기화 동기화 (synchronization) ● 두 개의 thread 가 같은 객체에 접근 할 경우, 동시에 접근 함으로써 오류가 발생 ● 동기화는 임계영역에 접근한 경우 공유자원을 lock 하여 다른 thread의 접근을 제어 ● 자바에서는 synchronized 메서드나 synchronized 블럭을 사용 ● synchronized 메서드 객체의 메소드에 synchronized 키워드 사용 현재 이 메서드가 속해있는 객체에 lock을 건다. ● synchronized 블럭.. Java/정리 2021.09.07
제네릭 제네릭 자료형 정의 ● 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언하는 것 ● 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식\ ● 컬렉션 프레임워크에서 많이 사용되고 있음 제네릭 클래스 정의 public class GenericPrinter { private T material; public void setMaterial(T material) { this.material = material; } public T getMaterial() { return material; } public String toString(){ return.. Java/정리 2021.09.07
swing ch04 집만들기 package ch03; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; // //class MyPanel extends JPanel { // //@Override //public void paint(Graphics g) { //super.paint(g); //g.drawString("House", 310, 180); //g.drawString("●●●●●●●●●●●●●●●●●●●●●",200, 205); //g.drawString("☆",100, 105); //g.drawString("☆",50, 85); //g.drawString("☆",370, 45); //g.drawString("☆",470, 25); .. Java/Excercise 2021.09.07