Java 打印定时线程
我正在完成以下任务: 考虑一个值为非负整数的共享计数器, 最初为零。时间打印线程将计数器递增一 并从执行开始每秒打印其值。A. 消息打印线程每十五秒打印一条消息。有 时间打印线程将通知消息打印线程 每一秒都在流逝。添加另一个打印消息的消息打印线程 每七秒钟发送一条不同的消息。必须这样做 无需修改时间打印线程实现 所有相关线程是否共享由更新的计数器对象 每秒打印线程的时间。打印线程运行的时间 通知其他线程在计数器对象每次更新时读取计数器对象 计数器,则每个消息打印线程将读取计数器 值,并查看其指定的时间段是否已过;如果是的话,它会的 打印它的消息Java 打印定时线程,java,timer,Java,Timer,我正在完成以下任务: 考虑一个值为非负整数的共享计数器, 最初为零。时间打印线程将计数器递增一 并从执行开始每秒打印其值。A. 消息打印线程每十五秒打印一条消息。有 时间打印线程将通知消息打印线程 每一秒都在流逝。添加另一个打印消息的消息打印线程 每七秒钟发送一条不同的消息。必须这样做 无需修改时间打印线程实现 所有相关线程是否共享由更新的计数器对象 每秒打印线程的时间。打印线程运行的时间 通知其他线程在计数器对象每次更新时读取计数器对象 计数器,则每个消息打印线程将读取计数器 值,并查看其指定
这将输出我希望它输出的内容,但是当7秒和15秒的消息显示时,需求需要多个线程输出。我不知道如何使用多个线程来执行此操作。在if条件之后,必须删除
“;”
if(x%7 == 0);
及
检查以下代码
public static void main(String... args) {
Thread thread = new Thread() {
public void run() {
int x = 0;
while (true) {
x = x + 1;
System.out.print(x + " ");
if (x % 7 == 0)
{
System.out.println();
System.out.println("7 second message");
}
if (x % 15 == 0)
{
System.out.println();
System.out.println("15 second message");
}
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
thread.start();
}
我的输出如下
1 2 3 4 5 6 7
7 second message
8 9 10 11 12 13 14
7 second message
15
15 second message
16 17 18 19 20 21
7 second message
22 23 24 25 26 27 ...
您必须删除“;”之后的if条件;该死,我怎么会错过呢?谢谢。我现在已经完成了,但仍然得到了相同的输出。我认为您遗漏了一些东西,请检查更新的代码。我知道现在发生了什么。一切正常。非常感谢你听到这个消息。由于一个愚蠢的错误,我被困了好一阵子。
public static void main(String... args) {
Thread thread = new Thread() {
public void run() {
int x = 0;
while (true) {
x = x + 1;
System.out.print(x + " ");
if (x % 7 == 0)
{
System.out.println();
System.out.println("7 second message");
}
if (x % 15 == 0)
{
System.out.println();
System.out.println("15 second message");
}
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
thread.start();
}
1 2 3 4 5 6 7
7 second message
8 9 10 11 12 13 14
7 second message
15
15 second message
16 17 18 19 20 21
7 second message
22 23 24 25 26 27 ...