多线程+队列的简单使用
来源:互联网 发布:2017大数据发展报告 编辑:程序博客网 时间:2024/06/05 17:10
以前在项目中很少用到队列,其实队列对于解决并发很是重要,今天着手看了相关资料并实际简单操作,如下:
1.队列的含义:队列就是一种特殊的线性表,采用FIFO方式,而栈是LIFO方式。
2.常用的队列:LinkedList实现了Queue的接口
3.队列的操作:
赋值:queue.offer(); queue.add();
取值:queue.poll(); queue.remove();
其中 add,remove 如果失败会抛出异常,而前者会有返回值。
查看队列前端数据:queue.element(), queue.peek();
4.实例操作:
A。初始化一个队列,内部元素为0-50数字
B。启动100个线程同时去取这个队列的数字,看取数是否冲突。类似100个客户去秒杀50个商品
package test;
import java.util.LinkedList;
import java.util.Queue;
/**
* @author zxh
*
*/
public class Test extends Thread {
/*
* 初始化一个队列
*/
public static Queue<String> inintQueue(){
Queue<String> queue = new LinkedList<String>();
for(int i = 0;i<50;i++){
queue.offer(String.valueOf(i));
}
return queue;
}
public static void main(String[] args) {
Queue<String> queue = inintQueue();
System.out.println(queue);
for(int i=0;i<100;i++){
ThreadTest test = new ThreadTest(String.valueOf(i),queue);
test.start();
}
}
}
package test;
import java.util.LinkedList;
import java.util.Queue;
public class ThreadTest extends Thread{
Queue<String> queue = new LinkedList<String>();
String threadFalg = "";
public ThreadTest(String threadFalg,Queue<String> queue){
this.queue = queue;
this.threadFalg = threadFalg;
}
public void run(){
String qu = queue.poll();
System.out.println(">>>thread is:"+threadFalg+" queue is:"+qu);
}
}
阅读全文
0 0
- 多线程+队列的简单使用
- 简单的使用消息队列的多线程通信
- 多线程c++队列的使用
- c++ 多线程阻塞队列的简单实现
- 【原创】简单的python多线程队列
- 多线程的简单使用
- 多线程的简单使用
- 优先队列的简单使用
- 等待队列的简单使用
- IOS多线程及队列的使用
- IOS多线程及队列的使用
- IOS多线程及队列的使用
- IOS多线程及队列的使用
- python多线程的简单使用
- Executors多线程的简单使用
- Android多线程的简单使用
- JAVA多线程的简单使用
- JAVA 多线程的简单使用
- #bzoj3392#序列计数(规律 + 逆元方法)
- tensorflow 学习:用CNN进行图像分类
- 彻底理解ThreadLocal
- 用 FreeFileSync 在 Ubuntu 中对比及同步文件
- ubuntu16.04 安装matlab2014a
- 多线程+队列的简单使用
- 面试题 素数对
- 暑假第14天总结
- Java Collection与Collections
- 命运 (DP方格取数)
- PCL:使用VoxelGrid filter对点云进行下采样
- 关于eclipse项目创建maven项目目录不正常的解决方案
- codeforces-148E Porcelain
- MPEG2