package com.clock;//swing으로 디지털 시계만들기(Thread)

import java.awt.FlowLayout;
import java.awt.Font;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class DigitalClock extends JFrame implements Runnable{
	private Thread thread;
	private JLabel label;

	public DigitalClock(){
		super("디지털 시계");

		setLayout(new FlowLayout());

		label = new JLabel();
		label.setFont(new Font("Serif",Font.PLAIN, 20));

		if(thread == null){
			
			//this의 의미는 Runnable이 구현된 객체를 뜻함(DigitalClock)
			thread = new Thread(this);
			thread.start();
		}
		add(label);
		setBounds(100,100,400,100);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		JFrame.setDefaultLookAndFeelDecorated(true);
		new DigitalClock();
	}
	public void run(){
		while(true){
			Calendar cal = Calendar.getInstance();
			String now = cal.get(Calendar.YEAR)+"년"+
					(cal.get(Calendar.MONTH)+1)+"월"+
					cal.get(Calendar.DATE)+"일"+
					cal.get(Calendar.HOUR)+"시"+
					cal.get(Calendar.MINUTE)+"분"+
					cal.get(Calendar.SECOND)+"초";
			label.setText(now);
			try{
				Thread.sleep(1000);
			}catch(InterruptedException e){
				e.printStackTrace();
			}
		}
	}
}




윈도우 xp랑 다를줄 알았는데....7도 같은 스타일로 출력된다..

'Java > Thread' 카테고리의 다른 글

Thread synchronization(스레드 동기화)  (0) 2012.04.11
Thread Priority  (0) 2012.04.11
Multi-Thread  (0) 2012.04.11
Thread runnable  (0) 2012.04.11
Thread(스레드,쓰레드)  (0) 2012.04.11
package com.basic;//스레드 동기화 Synchronized

class ATM implements Runnable{
	//공유 자원
	private long depositeMoney = 10000;
	public void run(){
		synchronized (this){
			for(int i=0;i<5;i++){
				try{
					Thread.sleep(1000);
				}catch(InterruptedException e){
					e.printStackTrace();
				}
				if(getDepositeMoney() <= 0)
					break;
				//임계 영역 : 공유자원을 변경하는 코드영역
				withDraw(1000);
			}
		}
	}
	public void withDraw(long howMuch){
		if(getDepositeMoney()>0){
			depositeMoney -= howMuch;
			System.out.println(Thread.currentThread().getName()+" , "+getDepositeMoney());
		}else{
			System.out.print(Thread.currentThread().getName()+" , ");
			System.out.println("잔액이 부족하다");
		}
	}
	public long getDepositeMoney(){
		return depositeMoney;
	}
}
public class SynchronizedEx {
	public static void main(String[] args) {
		ATM atm = new ATM();
		Thread mother = new Thread(atm,"mother");
		Thread son = new Thread(atm,"son");
		mother.start();
		son.start();
	}
}

mother , 9000

mother , 8000
mother , 7000
mother , 6000
mother , 5000
son , 4000
son , 3000
son , 2000
son , 1000
son , 0

'Java > Thread' 카테고리의 다른 글

swing으로 디지털 시계 만들기  (1) 2012.04.11
Thread Priority  (0) 2012.04.11
Multi-Thread  (0) 2012.04.11
Thread runnable  (0) 2012.04.11
Thread(스레드,쓰레드)  (0) 2012.04.11
package com.basic;//Thread Priority이용하여 우선순위 높이기

public class ThreadEx9 {
	public static void main(String[] args){

		ThreadEx9_1 th1 = new ThreadEx9_1();
		ThreadEx9_2 th2 = new ThreadEx9_2();

		//우선순위를 기본우선순위(5) - > 7
		th2.setPriority(7);

		System.out.println("Priority of th1(-) : "+th1.getPriority());
		System.out.println("Priority of th2(|) : "+th2.getPriority());

		th1.start();
		th2.start();
	}
}

class ThreadEx9_1 extends Thread{
	public void run(){
		for(int i=0;i<300;i++)
			System.out.print("-");
	}
}

class ThreadEx9_2 extends Thread{
	public void run(){
		for(int i=0;i<300;i++)
			System.out.print("|");
	}
}

Priority of th1(-) : 5

Priority of th2(|) : 7
---------------|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||-----------------------------------------------||||||||||||||||-|----||||||||
||||||||||---------|||||||||||||||||-|||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||-----------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------

'Java > Thread' 카테고리의 다른 글

swing으로 디지털 시계 만들기  (1) 2012.04.11
Thread synchronization(스레드 동기화)  (0) 2012.04.11
Multi-Thread  (0) 2012.04.11
Thread runnable  (0) 2012.04.11
Thread(스레드,쓰레드)  (0) 2012.04.11
package com.basic;//Thread 클래스 사용하여 멀티스레드 사용
//멀티 스레드를 지원하는 클래스를 만드려면 java.lang.Thread 클래스의 상속받아야함
class ThreadExam extends Thread{
	ThreadExam(String name){//생성자에 스레드 이름이 전달인자로 넘어옴
		//ThreadExam의 상위 클래스인 Thread의 생성자 (super)호출
		super(name);//전달인자로 준 값이 스레드의 이름이 됨
	}
	public void run(){
		for(int num=1;num<=5;num++){
			try{
				Thread.sleep(1000);
			}catch(InterruptedException e){
				e.printStackTrace();
			}
			//스레드의 이름을 얻어 출력함
			System.out.println(getName()+" : "+num);
		}
	}
}
public class ThreadTest01 {
	public static void main(String[] args) {
		
		ThreadExam t1 = new ThreadExam("첫 번째 스레드");
		ThreadExam t2 = new ThreadExam("두 번째 스레드");
		ThreadExam t3 = new ThreadExam("세 번째 스레드");
		
		t1.start();
		t2.start();
		t3.start();
	}

}
첫 번째 스레드 : 1
세 번째 스레드 : 1
두 번째 스레드 : 1
두 번째 스레드 : 2
첫 번째 스레드 : 2
세 번째 스레드 : 2
두 번째 스레드 : 3
세 번째 스레드 : 3
첫 번째 스레드 : 3
세 번째 스레드 : 4
첫 번째 스레드 : 4
두 번째 스레드 : 4
두 번째 스레드 : 5
첫 번째 스레드 : 5

세 번째 스레드 : 5

'Java > Thread' 카테고리의 다른 글

swing으로 디지털 시계 만들기  (1) 2012.04.11
Thread synchronization(스레드 동기화)  (0) 2012.04.11
Thread Priority  (0) 2012.04.11
Thread runnable  (0) 2012.04.11
Thread(스레드,쓰레드)  (0) 2012.04.11
package com.basic;//thread Runnable

public class RunnableEx implements Runnable{
	public void run(){//구현
		for(int i=0;i<10;i++){
			try{
				Thread.sleep(1000);//1초동안 멎게 만듬 static 한 메소드 (밀리 세컨드)(Thread.sleep)
			}catch(InterruptedException e){
				e.printStackTrace();
			}
			System.out.printf("스레드 이름 : %s, ",Thread.currentThread().getName());

			System.out.printf("temp value : %d\n",i);
		}
	}
	public static void main(String[] args) {
		RunnableEx r = new RunnableEx();
		Thread td = new Thread(r,"두번째");//객체 등록
		td.start();
	}
}

스레드 이름 : 두번째, temp value : 0

스레드 이름 : 두번째, temp value : 1
스레드 이름 : 두번째, temp value : 2
스레드 이름 : 두번째, temp value : 3
스레드 이름 : 두번째, temp value : 4
스레드 이름 : 두번째, temp value : 5
스레드 이름 : 두번째, temp value : 6
스레드 이름 : 두번째, temp value : 7
스레드 이름 : 두번째, temp value : 8
스레드 이름 : 두번째, temp value : 9

'Java > Thread' 카테고리의 다른 글

swing으로 디지털 시계 만들기  (1) 2012.04.11
Thread synchronization(스레드 동기화)  (0) 2012.04.11
Thread Priority  (0) 2012.04.11
Multi-Thread  (0) 2012.04.11
Thread(스레드,쓰레드)  (0) 2012.04.11
package com.basic;//스레드



public class ThreadEx extends Thread{
	public ThreadEx(String threadName){
		super(threadName);
	}
	//run 메소드 재정의
	public void run(){
		for(int i=0;i<10;i++){
			try{
				sleep(1000);//1초동안 멎게 만듬 static 한 메소드 (밀리 세컨드)(Thread.sleep)
			}catch(InterruptedException e){
				e.printStackTrace();
			}
			System.out.printf("스레드 이름 : %s, ",currentThread().getName());
			
			System.out.printf("temp value : %d\n",i);
		}
	}
	public static void main(String[] args) {
		ThreadEx td = new ThreadEx("첫번째");
		td.start();//run()메소드 실행
	}
}
스레드 이름 : 첫번째, temp value : 0
스레드 이름 : 첫번째, temp value : 1
스레드 이름 : 첫번째, temp value : 2
스레드 이름 : 첫번째, temp value : 3
스레드 이름 : 첫번째, temp value : 4
스레드 이름 : 첫번째, temp value : 5
스레드 이름 : 첫번째, temp value : 6
스레드 이름 : 첫번째, temp value : 7
스레드 이름 : 첫번째, temp value : 8

스레드 이름 : 첫번째, temp value : 9

'Java > Thread' 카테고리의 다른 글

swing으로 디지털 시계 만들기  (1) 2012.04.11
Thread synchronization(스레드 동기화)  (0) 2012.04.11
Thread Priority  (0) 2012.04.11
Multi-Thread  (0) 2012.04.11
Thread runnable  (0) 2012.04.11

+ Recent posts