SimpleThreads示例-Java教程

SimpleThreads示例-Java教程,java,Java,我试着搜索这个问题,但找不到 我试图理解Java教程中提供的示例: SimpleThreads示例: 在本例中,当我注释掉//t.join1000;其输出显示为: main: Starting MessageLoop thread main: Waiting for MessageLoop thread to finish main: Still waiting... main: Still waiting... ... ... main

我试着搜索这个问题,但找不到

我试图理解Java教程中提供的示例: SimpleThreads示例:

在本例中,当我注释掉//t.join1000;其输出显示为:

    main: Starting MessageLoop thread
    main: Waiting for MessageLoop thread to finish
    main: Still waiting...
    main: Still waiting...
    ...
    ...
    main: Still waiting...
    Thread-5: A kid will eat ivy too
    main: Still waiting...
    main: Finally!
取消注释t.join1000,它显示importantInfo[]数组中的所有元素


在上面的输出中,为什么它不显示数组中的所有元素,而只显示最后一个元素

我很确定它正在打印数组中的所有元素-你只是看不到而已 当我试图不在控制台上打印,而是将其写入一个文件140kbyte textfile oO时,所有4个不同的字符串都被写入。。。可能是控制台idk的并发性问题 也许控制台输出是有限的?检查您的Eclipse/IDE设置

所以“仍在等待”会被打印几百次,甚至上千次,而你正在搜索其他4个字符串——这并不奇怪,你在混乱中找不到它们


希望这有点帮助,尽管我同意-这是一个可怕的例子xD

这是一个非常可怕的例子。可能最好添加一些断点并使用调试器来解密正在发生的事情。我刚刚将输出路由到一个文本文件,它创建了大小为10.5 MB的文件,但它显示的输出与我上面提到的相同。奇怪。。。你是怎么做到的?两个线程使用相同的IO流?我使用了printwriter=new PrintWritertest.txt,UTF-8;作者:println。。。;writer.close;