并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用的实例
来源:互联网 发布:sem优化方案 编辑:程序博客网 时间:2024/06/05 05:35
package com.example.myapp2;
import java.io.UnsupportedEncodingException;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
private int i = 60000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// BlockingQueue queue = new ArrayBlockingQueue(102400);
// BlockingQueue<byte[]> queue = new ArrayBlockingQueue(102400);
LinkedBlockingQueue queue = new LinkedBlockingQueue(10240);
Producer producer = new Producer(queue);
Consumer consumer = new Consumer(queue);
new Thread(producer).start();
new Thread(consumer).start();
// Thread.sleep(4000);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public class Producer implements Runnable {
protected BlockingQueue queue = null;
public Producer(BlockingQueue queue) {
this.queue = queue;
}
public void run() {
try {
while (true) {
byte[] buffer=null;
String str = "now time qty is :"+String.valueOf(i);
try {
buffer = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
queue.put(buffer);
//Thread.sleep(10);
i--;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Consumer implements Runnable {
protected BlockingQueue queue = null;
public Consumer(BlockingQueue queue) {
this.queue = queue;
}
public void run() {
try {
while (true) {
byte[] buffer=(byte[]) queue.take();
String str="";
try {
str=new String(buffer,"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println(queue.take());
System.out.println(str);
}
// System.out.println(queue.take());
// System.out.println(queue.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
import java.io.UnsupportedEncodingException;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
private int i = 60000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// BlockingQueue queue = new ArrayBlockingQueue(102400);
// BlockingQueue<byte[]> queue = new ArrayBlockingQueue(102400);
LinkedBlockingQueue queue = new LinkedBlockingQueue(10240);
Producer producer = new Producer(queue);
Consumer consumer = new Consumer(queue);
new Thread(producer).start();
new Thread(consumer).start();
// Thread.sleep(4000);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public class Producer implements Runnable {
protected BlockingQueue queue = null;
public Producer(BlockingQueue queue) {
this.queue = queue;
}
public void run() {
try {
while (true) {
byte[] buffer=null;
String str = "now time qty is :"+String.valueOf(i);
try {
buffer = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
queue.put(buffer);
//Thread.sleep(10);
i--;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Consumer implements Runnable {
protected BlockingQueue queue = null;
public Consumer(BlockingQueue queue) {
this.queue = queue;
}
public void run() {
try {
while (true) {
byte[] buffer=(byte[]) queue.take();
String str="";
try {
str=new String(buffer,"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println(queue.take());
System.out.println(str);
}
// System.out.println(queue.take());
// System.out.println(queue.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
0 0
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用的实例
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue使用场景总结
- 转 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue使用场景总结
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue使用场景总结
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- ListView item错位 由于Item复用时高度不一致导致ListView 显示错误
- ubuntu 软链接 安装androidstudio时 JDK版本控制
- Glide图片加载与ImageLoade其他图片加载的区别
- C语言之学生管理系统代码(完整)
- OpenCV_(2):常用数据结构和函数
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用的实例
- 反编译Android APK及防止APK程序被反编译
- java中的final关键字
- Flume初介绍和命令行使用
- JavaScript数据类型
- 负载均衡,会话保持,session同步
- 代码中设置控件间距
- JNDI数据库连接池配置
- iOS开发~修改UITextField的placeholder的字体大小、颜色