7

javaですでに実行中のスレッドにパラメーターを渡す方法-コンストラクターではなく、おそらくwait()を使用せずに(可能??)

How can I pass a parameter to a Java Thread?のコメントに似たもの

すでに実行中のスレッドにパラメーターを渡すということですか? 現在のすべての回答は、新しいスレッドにパラメーターを渡すことに関するものであるため... — バレンティン ロシェ

[編集]

はい、生産者/消費者パターンのようなものを探していました。

処理があり、キーボード入力の準備ができているスレッドのようなものが必要でした。もう 1 つのスレッドは、ネットワークを監視し、受信したテキストを処理スレッドに渡すだけです。

4

4 に答える 4

2
public class T1 implements Runnable {
    //parameter of thread T1
    public static AtomicBoolean flag = new AtomicBoolean();

    @Override
    public void run() { 
    }   
}

public class T2 implements Runnable {

    @Override
    public void run() { 
        //parameter to an already running thread
        T1.flag.set(true);
    }   
}
于 2012-08-21T06:44:52.810 に答える
0

そのような方法はどうですか:

    class TestRun implements Runnable
    {
        private int testInt = -1;

        public void setInt(int i)
        {
            this.testInt = i;
        }

        @Override
        public void run()
        {
            while (!isFinishing())
            {
                System.out.println("Working thread, int : " + testInt);
                try
                {
                    Thread.sleep(2500);
                }
                catch (InterruptedException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

.....

        TestRun first = new TestRun();
        TestRun second = new TestRun();
        (new Thread(first)).start();
        (new Thread(second)).start();
        try
        {
            Thread.sleep(5000);
        }
        catch (InterruptedException e)
        {
        }
        first.setInt(101);
        second.setInt(102);
于 2012-08-21T06:38:13.543 に答える