gpt4 book ai didi

java - 执行器 System.out.println 未显示在控制台中

转载 作者:行者123 更新时间:2023-12-01 22:18:30 25 4
gpt4 key购买 nike

package com.company;

import java.io.Console;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Main {

static boolean isToastShewnLeft = false;

public static void main(String[] args) {

showToastLeft("first", "", "");
showToastLeft("second", "", "");
showToastLeft("third", "", "");
showToastLeft("fourth", "", "");
showToastLeft("fifth", "", "");
}

public static void showToastLeft(final String paramToastString1, final String paramToastString2, final String paramToastString3) {

final long start = System.currentTimeMillis();

ScheduledExecutorService worker1 = Executors.newSingleThreadScheduledExecutor();

ScheduledExecutorService worker2 = Executors.newSingleThreadScheduledExecutor();

if (isToastShewnLeft) {

final Runnable r = new Runnable() {
@SuppressWarnings("StatementWithEmptyBody")
public void run() {
while (isToastShewnLeft) {

}

isToastShewnLeft = true;

//This line does not appear in console output
//I can set a breakpoint on this println and see that it does execute
System.out.println(paramToastString1);

ScheduledExecutorService worker3 = Executors.newSingleThreadScheduledExecutor();

final Runnable r2 = new Runnable() {
public void run() {
isToastShewnLeft = false;

System.out.println(System.currentTimeMillis() - start + " Set toast not shewn");
}
};

worker3.schedule(r2, 5, TimeUnit.SECONDS);

}
};

worker1.schedule(r, 0, TimeUnit.SECONDS);

} else {
isToastShewnLeft = true;

System.out.println(paramToastString1);

final Runnable r2 = new Runnable() {
public void run() {
isToastShewnLeft = false;
System.out.println(System.currentTimeMillis() - start + " Set toast not shewn");
}
};

worker2.schedule(r2, 5, TimeUnit.SECONDS);

}
}
}
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java -Didea.launcher.port=7543 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14 CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/javafx-doclet.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/htmlconverter.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Users/ericsepich/IdeaProjects/untitled1/out/production/untitled1:/Applications/IntelliJ IDEA 14 CE.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain com.company.Main
first
5008 Set toast not shewn

我的目的是在每次调用 showToastLeft 时间隔 5 秒显示文本。使用 println 是否可能有问题执行者线程?我使用 IntelliJ idea 作为我的 IDE。

我将发布一个屏幕截图,显示调试器中 boolean 值的值为 true。 enter image description here

感谢您的回复......

最佳答案

您没有让 Java 线程系统有机会在线程之间共享 CPU。

                while (isToastShewnLeft) {
// Add this.
Thread.sleep(10);
}

关于java - 执行器 System.out.println 未显示在控制台中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30458223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com