java thread.sleep 1000_有没有更好或替代的方法可以跳过/避免在Java中使用Thread.sleep(1000)?...
发布日期:2021-06-24 16:29:02 浏览次数:2 分类:技术文章

本文共 1362 字,大约阅读时间需要 4 分钟。

我正在测试一个重载的视频,该视频在Thread.sleep(1000)之后加载;它播放第二个视频。但是一旦我一次又一次地循环播放,它就会冻结。

当我删除所有那些Thread.sleep(1000); 它完美地工作而没有冻结。

但是我需要延迟(但不要使用Thread.sleep方法),我们该怎么做?

package test;

public class Test

{

static String what = "0";

public static void main(String args[])

{

Load.video720p("/tmp/START.mp4"); // This is 8 second movie playing

new javax.swing.Timer(8000, new ActionListener()

{

public void actionPerformed(ActionEvent ae)

{

if (what.equals("0") )

{

/* After 8 seconds play 0.mp4 */

callMe();

what = "1";

} else {

/* After 8 seconds play 1.mp4 */

callMe();

what = "0";

}

}

}).start(); /* Keep on looping every 8 seconds. */

}

/* 8 seconds interval call me. */

public static void callMe()

{

try {

/* Try 0: Freeze/Do not play */

Load.video720p("/tmp/" + what + ".mp4");

/* Try 1: Does not change films (cant run)

new Thread(new Runnable() {

public void run() {

Load.video720p("/tmp/" + what + ".mp4", EVENT_TRIGGER_TRUE);

}

});*/

/* Try 2: Fails

try {

javax.swing.SwingUtilities.invokeAndWait(new Runnable() {

public void run() {

Load.video720p("/tmp/" + what + ".mp4");

}

});

} catch (Exception e) {

System.err.println(e);

}*/

/* Try 3: Failes

try {

java.awt.EventQueue.invokeAndWait(new Runnable() {

public void run() {

Load.video720p("/tmp/" + what + ".mp4");

}

});

} catch (Exception e) {

System.err.println(e);

}*/

} catch (Exception e) {

System.out.println(e);

}

}

}

转载地址:https://blog.csdn.net/weixin_33826897/article/details/114601342 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java中的getnumber怎么用_Java中的Enum用法介绍
下一篇:java程序有多个类的如何运行_当多个Java程序在同一台机器上运行

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月04日 13时10分16秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章