Java/Excercise 97

thread ch03 TerminateThread

package ch03; import java.util.Scanner; class MyThread extends Thread { boolean flag = true; @Override public void run() { while(flag) { System.out.print("-"); try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } }//무한루프 돌면서 대기(이벤트같은것들) } } public class TerminateThread { public static void main(String[] args) { System.out.println("작업자를 생성하겠습니다."); //메인 쓰레드가 작업자를 생성 ..

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

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