Работа над заданием класса, и я изо всех сил пытаюсь справиться с этим.
Это должно быть поточно-ориентированным и работоспособным.
Мне нужно создать 2 объекта для оценки, которые инициализируются уникальным идентификатором и начальным значением 100. Затем необходимо создать 20 потоков и назначить 5 потоков для инкрементатора и 5 потоков для декремента первого объекта. и дополнительные 5 потоков для каждого второго объекта.
class ScoreRunnerDemo implements Runnable
{
private long id = 1;
private double score = 100;
Thread t1;
// Count()
{
t1 = new Thread(this, "Runnable Thread")
System.out.println("created thread " + t1);
t1.start();
}
public void run ()
{
try
{
for (int i = 0; i<5; i++) {
System.out.println("Printing the count " + i);
Thread.sleep(100);
}
}
catch (InterruptedException e)
{
System.out.println("first increment thread
interrupted");
}
System.out.println("t1 is over");
}
}
public class ScoreRunner
{
public static void main(String[] args) {
//number of threads
int n = 20;
for (int i = 0; i < n; i++) {
ScoreRunnerDemo object = new ScoreRunnerDemo();
while (ScoreRunnerDemo.getScore < 200) {
System.out.println("Thread: " +
Thread.currentThread().getId() + " Score: " + ScoreRunner.());
}
}
}
, пожалуйста, помогите, поскольку я не уверен в том, что еще мне нужно.
Класс оценки выглядит следующим образом:
import java.text.DecimalFormat;
public class Score
{
private long id;
private double score;
private DecimalFormat df = new DecimalFormat("#,###.##");
/**Grade
* @param id
* @param score
*/
public Score(long id, double score)
{
this.id = id;
this.score = score;
}
/** Method getId
* @return
*/
public long getId()
{
return id;
}
/** Method setId
* @param id
*/
public void setId(long id)
{
this.id = id;
}
/** Method getScore
* @return
*/
public double getScore()
{
return score;
}
/** Method setScore
* @param score
*/
public void setScore(double score)
{
this.score = score;
}
public synchronized void updateScore(double change)
{
score += change;
System.out.println("ID: " + id + "\t" + " Score: " + df.format(score));
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
return id + "\t" + "\t" + score;
}
}