1

これが私のメインです:

public static void main(String[] args){
    java.util.ArrayList data_queue=new java.util.ArrayList();
    Producer p = new Producer(data_queue);
    Consumer c = new Consumer(data_queue);
    p.start();
    c.start();
    System.out.println(“Random Week Day:”);
}

class Producer extends Thread{
    ArrayList data_queue;
    public Producer(ArrayList data_queue){
        this.data_queue=data_queue;
    }
    public void run(){
        //your code; Create random week day, Add
    }
}

class Consumer extends Thread{
    ArrayList data_queue;
    public Consumer(ArrayList data_queue){
        this.data_queue=data_queue;
    }
    public void run(){
        //your code: Remove, display
    }
}

Producer ランダムな平日を作成し、最後に ArrayList に追加 -> および出力 Consumer この ArrayList の最初の要素を取得 -> 削除 -> および出力

MAIN FUNCTION で何も編集できない場合は、Producer と Consumer だけを変更します。同じ変数 (ArrayList data_queue) にアクセスしてスレッドで ADD および DELETE するにはどうすればよいですか?

4

2 に答える 2

0

すでに同じオブジェクトにアクセスしています。一度だけ呼び出しnewたので、全員に渡した ArrayList は 1 つだけです。次のようなスレッド間の同期に注意することを忘れないでください。

List<String> list = Collections.synchronizedList(new ArrayList<String>());
于 2013-07-17T08:22:41.093 に答える