首页 > 其他分享 >线程问题<3>

线程问题<3>

时间:2023-02-08 11:36:09浏览次数:30  
标签:int void list 问题 static 线程 new public


有N张火车票,每张票都有一个编号,同时有10个窗口对外售票,请写一个模拟程序

1.使用锁

缺点: 效率不高

public class Test7 {

private LinkedList list = new LinkedList();

public static void main(String[] args) {
final Test7 t = new Test7();
for (int i = 0; i < 3000; i++) {
t.list.add(i);
}
for (int i = 0; i < 10; i++) {
new Thread() {
public void run() {
synchronized (t.list) {
while(t.list.size()>0) {
System.out.println("销售了" + t.list.removeFirst());
}
}
}
}.start();
}
}

}


2.使用并发容器: ConcurrentLinkedQueue

public class Test8 {

static Queue<String> tickets = new ConcurrentLinkedQueue<String>();

static {
for (int i = 0; i < 5000; i++) {
tickets.add("票编号" + i);
}
}

public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
new Thread() {
public void run() {
while(true) {
String s = tickets.poll();
if(s == null) break;
else System.out.println("销售了" + s);
}
}
}.start();
}
}

}



标签:int,void,list,问题,static,线程,new,public
From: https://blog.51cto.com/u_12182769/6043790

相关文章

  • 线程安全的单列模式(4种)
    1.不使用同步锁publicclassSingleton{privatestaticSingletons=newSingleton();//直接初始化一个实例对象privateSingleton(){///private类型的构造函数......
  • ThreadLocal: 线程独享
    ThreadLocal线程局部变量ThreadLocal是使用空间换时间,synchronized是使用时间换空间比如在hibernate中session就存在与ThreadLocal中,避免synchronized的使用packagecom.mo;......
  • 表格单元格合并问题
    Document1-2-3-4-5-123452345参考资料https://blog.csdn.net/qq_39228087/article/details/83047311......
  • 线程问题<2>
    面试题:写一个固定容量同步容器,拥有put和get方法,以及getCount方法能够支持2个生产者线程以及10个消费者线程的阻塞调用1.使用wait和notify/notifyAll来实现publicclassTest......
  • 线程问题<1>
    实现一个容器,提供两个方法,add,size写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束1.第一种方法是......
  • java多线程编程核心技术(1丶2章)
    java多线程编程第一章:实现多线程编程主要有两种方式,一种是继承Thread类,另一种是实现Runnable接口。使用继承Thread类的方式创建新线程时,最大的......
  • javaScript 高级语法 - class创建对象,继承 extends,super,类中this指向问题
    1.class创建对象classHuman{//类constructor(id,name){//构造器this.id=id;//成员变量this.name=name;}info(){//方法console.log("inf......
  • 关于mybatis resulttype 返回值异常的问题
    目录mybatisresulttype返回值异常例如:resulttype="student"但是当中有些字段为空例如:数据库字段为:s_name实体类字段为namemybatisresultType="map"的常见问题一、......
  • Request-获取请求参数中文乱码问题处理、请求转发
    Request获取请求参数中文乱码问题处理中文乱码问题:get方式:tomcat8已经将get方式乱码问题解决了post:会乱码解决:在获取参数前,设置request的......
  • 黑苹果中Memory modules misconfigured问题解决
    问题大致和这个差不多,头一样,下面的不一样:大致意思是,你的内存出现了错误设置,要么成对安装,要么把模块全插满。以前版本没有这个信息,那就一定是配置造成的。按照https://dor......