相关疑难解决方法(0)

如何使另一个线程在Java中休眠

我有一个扩展Thread的类.这个线程在运行时花费大部分时间睡觉,它将执行检查,如果为true则执行简单操作,然后睡眠1/2秒并重复.

该类还有一个由其他线程调用的公共方法.如果调用它,我希望线程在睡眠时睡眠时间更长,如果不是则立即睡觉.我试图让这个.sleep但似乎这仍然睡在当前的线程,它抱怨方法睡眠是静态的,应该静态访问.

这个程序显示我的问题,当调用CauseSleep时我想让它停止打印数字,直到睡眠结束.

public class Sleeper {
    public static void main(String[] args) {
        new Sleeper();
    }
    public Sleeper() {
        System.out.println("Creating T");
        T t = new T();
        System.out.println("Causing sleep");
        t.CauseSleep();
        System.out.println("Sleep caused");
    }
    public class T extends Thread {
        public T() {
            this.start();
        }
        public void run() {
            for (int i = 0; i < 30; i++) {
                System.out.println("T Thread: " + i);
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                }
            }
        }
        public void CauseSleep() {
            try {
                this.sleep(2000); …
Run Code Online (Sandbox Code Playgroud)

java multithreading

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

multithreading ×1