package com.test;
public class Review {
public static void main(String[] args) {
//1~100까지 화면에 출력하기
A a=new A(1);//a:reference
A a2=new A(1);
a.start();
a2.start();
}
}
class A extends Thread{
static int x;//A의 모든 객체가 공유
public A(){
System.out.println("생성자 메서드 호출됨");
}
public A(int x){//생성자 오버로딩
this.x=x;
}
@Override
public void run() {//스레드가 할 일
//super.run();
int x=0;
while(x<100){
x++;
System.out.println("\n"+x);
try{
Thread.sleep(500);
}catch(Exception e){
}
}
}
}
package com.test;
public class Review {
public static void main(String[] args) {
//1~100까지 화면에 출력하기
A a=new A(1);//a:reference
A a2=new A(1);
a.start();
a2.start();
}
}
class A extends Thread{
static int x;//A의 모든 객체가 공유
public A(){
System.out.println("생성자 메서드 호출됨");
}
public A(int x){//생성자 오버로딩
this.x=x;
}
@Override
public void run() {//스레드가 할 일
//super.run();
synchronized(A.class){//A클래스가 누가 사용중일 때 다른 사람은 대기
while(x<100){
x++;
System.out.println("\n"+x+this.toString());
try{
Thread.sleep(500);
}catch(Exception e){
}
}
}
}
}
package com.test;
public class Review {
public static void main(String[] args) {
//1~100까지 화면에 출력하기
A a=new A(0,"첫번째 스레드");//a:reference
A a2=new A(0,"두번째 스레드");
//a2.setPriority(Thread.MAX_PRIORITY);
a.setPriority(Thread.MIN_PRIORITY);
a.start();
a2.start();
}
}
class A extends Thread{
static int x;//A의 모든 객체가 공유
String name;
public A(){
System.out.println("생성자 메서드 호출됨");
}
public A(int x){//생성자 오버로딩
this.x=x;
}
public A(int x,String name){
this.x=x;
this.name=name;
}
@Override
public void run() {//스레드가 할 일
//super.run();
while(x<99){
synchronized(A.class){//A클래스가 누가 사용중일 때 다른 사람은 대기
x++;
System.out.println("\n"+x+this.name);
try{
Thread.sleep(10);
}catch(Exception e){
}
}
}
}
}