java多线程共同操作同一个队列,怎么实现?

java多线程共同操作同一个队列,怎么实现?怎么让他们操作同一个队列... java多线程共同操作同一个队列,怎么实现?
怎么让他们操作同一个队列
展开
 我来答
放飞新的人生
推荐于2017-10-09 · TA获得超过1707个赞
知道小有建树答主
回答量:405
采纳率:64%
帮助的人:217万
展开全部
以下是两个线程:

import java.util.*;

public class Thread_List_Operation {
//假设有这么一个队列
static List list = new LinkedList();

public static void main(String[] args) {
Thread t;
t = new Thread(new T1());
t.start();
t = new Thread(new T2());
t.start();

}

}

//线程T1,用来给list添加新元素
class T1 implements Runnable{

void getElemt(Object o){
Thread_List_Operation.list.add(o);
System.out.println(Thread.currentThread().getName() + "为队列添加了一个元素");
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
getElemt(new Integer(1));
}

}

}

//线程T2,用来给list添加新元素
class T2 implements Runnable{

void getElemt(Object o){
Thread_List_Operation.list.add(o);
System.out.println(Thread.currentThread().getName() + "为队列添加了一个元素");
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
getElemt(new Integer(1));
}

}

}

//结果(乱序)
Thread-0为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-1为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
Thread-0为队列添加了一个元素
东洚jd
2015-07-12 · TA获得超过1299个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:282万
展开全部
将该队列设置为static ,改变值时最好同步,防止数据混乱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tzqmiaomiao
2011-03-23
知道答主
回答量:43
采纳率:0%
帮助的人:15.7万
展开全部
你这个队列就是共享数据了啊,多线程共同操作的时候你必须实现同步。可以有多种方式实现。比如说sychronized(object){Queue queue=.......}等
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
j_z_
2011-03-23 · TA获得超过163个赞
知道小有建树答主
回答量:394
采纳率:50%
帮助的人:179万
展开全部
传说中的【线程同步】此时就该闪亮登场了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-23
展开全部
Java用一种叫监视器(monitor)的机制实现了进程间的异步执行。可以将监视器看作是一个很小的盒子,它只能容纳一个线程。一?copy;一个线程进入一个监视器,所有其他线程必须等到第一个线程退出监视器后才能进入。这?copy;监视器可以设计成保护共享的数据不被多个线程同时操作。大多数多线程系统将这?copy;监视器设计成对象,Java提?copy;了一种更清晰的解决方案。没有Monitor类;每个对象通过将他们的成员函数定义成synchronized来定义自己的显式监视器,一?copy;一个线程执行在一个synchronized函数里,其他任何线程都不能调用同一个对象的synchronized函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式