나는 다음과 같은 출력을 제공하는 프로그램 만들려고하고 있어요 사용하여 학생들 계산 프로그램 만들기 :스레드
MathStudent[1] Jack Count: 1
MathStudent[2] Smith Count: 1
MathStudent[3] Victor Count: 1
MathStudent[4] Mike Count: 1
ScienceStudent[5] Dave Count: 1
ScienceStudent[6] Oscar Count: 1
ScienceStudent[7] Peter Count: 1
ComputerStudent[8] Philip Count 1
ComputerStudent[9] Shaun Count 1
ComputerStudent[10] Scott Count 1
MathStudent[1] Jack Count: 2
MathStudent[2] Smith Count: 2
MathStudent[3] Victor Count: 2
MathStudent[4] Mike Count: 2
ScienceStudent[5] Dave Count: 2
ScienceStudent[6] Oscar Count: 2
ScienceStudent[7] Peter Count: 2
ComputerStudent[8] Philip Count 2
ComputerStudent[9] Shaun Count 2
ComputerStudent[10] Scott Count 2
:
:
:
MathStudent[1] Jack Count: 10
MathStudent[2] Smith Count: 10
MathStudent[3] Victor Count: 10
MathStudent[4] Mike Count: 10
ScienceStudent[5] Dave Count: 10
ScienceStudent[6] Oscar Count: 10
ScienceStudent[7] Peter Count: 10
ComputerStudent[8] Philip Count 10
ComputerStudent[9] Shaun Count 10
ComputerStudent[10] Scott Count 10
을하지만 점점 오전 출력은 다음과 같습니다
MathStudent[1]-Smith: - Count:1
MathStudent[2]-Jack: - Count:1
MathStudent[3]-Victor: - Count:1
MathStudent[4]-Mike: - Count:1
Science Student[5]-Dave: - Count:1
Science Student[6]-Oscar: - Count:1
Science Student[7]-Peter: - Count:1
Computer Student[8] Philip: - Count:1
Computer Student[9] Shaun: - Count:1
Computer Student[10] Scott: - Count:1
MathStudent[11]-Smith: - Count:1
MathStudent[12]-Jack: - Count:1
MathStudent[13]-Victor: - Count:1
MathStudent[14]-Mike: - Count:1
Science Student[15]-Dave: - Count:1
Science Student[16]-Oscar: - Count:1
Science Student[17]-Peter: - Count:1
Computer Student[18] Philip: - Count:1
Computer Student[19] Shaun: - Count:1
Computer Student[20] Scott: - Count:1
MathStudent[21]-Smith: - Count:1
MathStudent[22]-Jack: - Count:1
MathStudent[23]-Victor: - Count:1
MathStudent[24]-Mike: - Count:1
Science Student[25]-Dave: - Count:1
Science Student[26]-Oscar: - Count:1
Science Student[27]-Peter: - Count:1
Computer Student[28] Philip: - Count:1
Computer Student[29] Shaun: - Count:1
Computer Student[30] Scott: - Count:1
MathStudent[31]-Smith: - Count:1
MathStudent[32]-Jack: - Count:1
MathStudent[33]-Victor: - Count:1
MathStudent[34]-Mike: - Count:1
Science Student[35]-Dave: - Count:1
Science Student[36]-Oscar: - Count:1
Science Student[37]-Peter: - Count:1
Computer Student[38] Philip: - Count:1
Computer Student[39] Shaun: - Count:1
Computer Student[40] Scott: - Count:1
MathStudent[41]-Smith: - Count:1
MathStudent[42]-Jack: - Count:1
MathStudent[43]-Victor: - Count:1
MathStudent[44]-Mike: - Count:1
Science Student[45]-Dave: - Count:1
Science Student[46]-Oscar: - Count:1
Science Student[47]-Peter: - Count:1
Computer Student[48] Philip: - Count:1
Computer Student[49] Shaun: - Count:1
Computer Student[50] Scott: - Count:1
MathStudent[51]-Smith: - Count:1
MathStudent[52]-Jack: - Count:1
MathStudent[53]-Victor: - Count:1
MathStudent[54]-Mike: - Count:1
Science Student[55]-Dave: - Count:1
Science Student[56]-Oscar: - Count:1
Science Student[57]-Peter: - Count:1
Computer Student[58] Philip: - Count:1
Computer Student[59] Shaun: - Count:1
Computer Student[60] Scott: - Count:1
MathStudent[61]-Smith: - Count:1
MathStudent[62]-Jack: - Count:1
MathStudent[63]-Victor: - Count:1
MathStudent[64]-Mike: - Count:1
Science Student[65]-Dave: - Count:1
Science Student[66]-Oscar: - Count:1
Science Student[67]-Peter: - Count:1
Computer Student[68] Philip: - Count:1
Computer Student[69] Shaun: - Count:1
Computer Student[70] Scott: - Count:1
MathStudent[71]-Smith: - Count:1
MathStudent[72]-Jack: - Count:1
MathStudent[73]-Victor: - Count:1
MathStudent[74]-Mike: - Count:1
Science Student[75]-Dave: - Count:1
Science Student[76]-Oscar: - Count:1
Science Student[77]-Peter: - Count:1
Computer Student[78] Philip: - Count:1
Computer Student[79] Shaun: - Count:1
Computer Student[80] Scott: - Count:1
MathStudent[81]-Smith: - Count:1
MathStudent[82]-Jack: - Count:1
MathStudent[83]-Victor: - Count:1
MathStudent[84]-Mike: - Count:1
Science Student[85]-Dave: - Count:1
Science Student[86]-Oscar: - Count:1
Science Student[87]-Peter: - Count:1
Computer Student[88] Philip: - Count:1
Computer Student[89] Shaun: - Count:1
Computer Student[90] Scott: - Count:1
MathStudent[91]-Smith: - Count:1
MathStudent[92]-Jack: - Count:1
MathStudent[93]-Victor: - Count:1
MathStudent[94]-Mike: - Count:1
Science Student[95]-Dave: - Count:1
Science Student[96]-Oscar: - Count:1
Science Student[97]-Peter: - Count:1
Computer Student[98] Philip: - Count:1
Computer Student[99] Shaun: - Count:1
Computer Student[100] Scott: - Count:1
주 클래스는 다음과 같습니다
public class JavaLab5 {
public static final int DEBUG = 0;
public static void multipleThreads(int number) {
StudentThread []st = new StudentThread[number];
for (int j = 0; j < number; j++) {
st[j] = new StudentThread();
st[j].start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("Exception at PrintThread.run: " + e);
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//StudentThread studentThread = new StudentThread();
//studentThread.start();
multipleThreads(10);
}
}
학생 클래스 :
012 3,516,public class Student {
static int studentCounter = 1;
String name;
private int count = 0;
public static int instances = 0;
// Getters
public String getName() {
return this.name;
}
// Setters
public void setName(String name) {
if (JavaLab5.DEBUG > 3) System.out.println("In Student.setName. Name = "+ name);
this.name = name;
}
/**
* Default constructor. Populates name,age and gender
* with defaults
*/
public Student() {
instances++;
this.name = "Not Set";
}
/**
* Constructor with parameters
* @param name String with the name
*/
public Student(String name) {
this.name = name;
}
/**
* Destructor
* @throws Throwable
*/
protected void finalize() throws Throwable {
//do finalization here
instances--;
super.finalize(); //not necessary if extending Object.
}
public void getCounter() {
for (int j = 0; j < 1; j++) {
count++;
System.out.println(count);
}
}
@Override
public String toString() {
return this.name;
}
public String getSubjects() {
return this.getSubjects();
}
}
컴퓨터 학생 :
public class ComputerStudent extends Student {
int studCountObj;
/**
* Default constructor
*/
public ComputerStudent() {
super();
}
public ComputerStudent(String name) {
super(name);
studCountObj=studentCounter;
studentCounter++;
}
/**
* Display information about the subject
* @return
*/
@Override
public String getSubjects(){
return(" Computer Student" + "[" + studCountObj + "] " + name + ": ");
}
}
수학 학생 :
public class MathStudent extends Student {
int studCountObj;
/**
* Default constructor
* @param name
*/
public MathStudent(String name) {
super(name);
studCountObj=studentCounter;
studentCounter++;
}
public MathStudent() {
super();
}
/**
* Display information about the subject
* @return
*/
@Override
public String getSubjects(){
return(" MathStudent" + "[" + studCountObj + "]" + "-" + name + ": ");
}
}
과학 학생 :
public class ScienceStudent extends Student {
int studCountObj;
/**
* Default constructor
*/
public ScienceStudent() {
super();
}
public ScienceStudent(String name) {
super(name);
studCountObj=studentCounter;
studentCounter++;
}
/**
* Display information about the subject
* @return
*/
@Override
public String getSubjects(){
return(" Science Student" + "[" + studCountObj + "]" + "-" + name + ": ");
}
}
StudentThread 클래스 : 공용 클래스 StudentThread는 스레드 {
를 확장 0public void run(){
Student s[] = new Student[10];
s[0] = new MathStudent("Smith");
s[1] = new MathStudent("Jack");
s[2] = new MathStudent("Victor");
s[3] = new MathStudent("Mike");
s[4] = new ScienceStudent("Dave");
s[5] = new ScienceStudent("Oscar");
s[6] = new ScienceStudent("Peter");
s[7] = new ComputerStudent("Philip");
s[8] = new ComputerStudent("Shaun");
s[9] = new ComputerStudent("Scott");
for (Student item : s) {
System.out.print(item.getSubjects() + " - " + "Count:");
item.getCounter();
}
}
}
나는이 문제를 가지고, 하나는 학생 수는 100 개까지 모든 길을 가고 있지만 10까지 가야하고 10 명 세트가 학생 번호없이 repeast해야한다는 것입니다 괄호 안에 증가.
그리고 secound 문제는 카운트가 그냥 1
두 번째 문제는'Student '클래스의'getCounter()'메쏘드에 더 가깝다. 당신은 항상 한 번만 반복합니다. –
각 스레드는 10 명의 학생 = 100 명의 학생을 만들고, 각 학생은 카운터를 100 번 = 100 번 호출하여 카운터 = 카운터를 항상 1로 호출합니다. – 7663233
@ 668 어떻게 해결할 수 있습니까? – madman123