具體代碼如下:
創(chuàng)新互聯(lián)公司是一家專業(yè)從事做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)公司依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!
以下是兩個線程:
import java.util.*;
public class Thread_List_Operation {
//假設(shè)有這么一個隊列
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));
}
}
}
//結(jié)果(亂序)
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為隊列添加了一個元素
package list;
import java.util.ArrayList;
//這是關(guān)于List用法,代表性的有LinkedList,ArrayList,Vector用法類似
public class ArrayListTest {
/**
* @param args
*/
public static void main(String[] args) {
ArrayListString list = new ArrayListString();
//添加
list.add("三國演義");
list.add("西游記");
list.add("水滸傳");
list.add("紅樓夢");
//修改
list.set(0, "三國志");
//查詢某個元素是否存在
boolean flag = list.contains("西游記");
System.out.println(flag);
//刪除
list.remove(2);//list.remove("水滸傳");
//遍歷
int size = list.size();
for ( int i=0; isize; i++)
{
String str =(String)list.get(i);//得到某個位置的元素
System.out.println(str);
}
}
}
////////////////////////下面是排序的
package list;
import java.util.ArrayList;
import java.util.Collections;
//這是關(guān)于List用法,代表性的有LinkedList,ArrayList,Vector用法類似
//排序
//Collections可以排序,還可以得到最大,最小數(shù)值,還可以將集合反轉(zhuǎn)
public class SortListTest {
/**
* @param args
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
ArrayList list = new ArrayList();
//添加
list.add(45);
list.add(67);
list.add(87);
list.add(23);
list.add(67);
Collections.sort(list);//升序
//Collections.sort(list,Collections.reverseOrder());//降序
//遍歷
int size = list.size();
for ( int i=0; isize; i++ )
{
Integer str =(Integer)list.get(i);//得到某個位置的元素
System.out.println(str);
}
}
}
class StackT {
private VectorT v;
public Stack(){
v = new VectorT();
}
public T pop(){
if (v.size()==0) return null;
return v.get(v.size()-1);
}
public void push(T t){
v.add(t);
}
public boolean isEmpty(){
return v.size()==0;
}
}
class QueueT{
private VectorT v;
public Queue(){
v = new VectorT();
}
//入隊列
public void enqueue(T t){
v.add(t);
}
//出隊列
public T dequeue(){
if (v.size()==0) return null;
return v.get(0);
}
public boolean isEmpty(){
return v.size() == 0;
}
}
1.在同一時刻,可能有很多任務(wù)需要執(zhí)行,
而程序在同一時刻只能執(zhí)行一定數(shù)量的任務(wù),
當(dāng)需要執(zhí)行的任務(wù)數(shù)超過了程序所能承受的任務(wù)數(shù)時怎么辦呢?
這就有了先執(zhí)行哪些任務(wù),后執(zhí)行哪些任務(wù)的規(guī)則。
2.TaskQueue類就定義了這些規(guī)則中的一種,它采用的是FIFO(先進(jìn)先出,英文名是First
In
First
Out)的方式,也就是按照任務(wù)到達(dá)的先后順序執(zhí)行。TaskQueue類的定義。
Java任務(wù)隊列代碼如下:
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class TaskQueue
{
private ListTask
queue = new LinkedListTask();
//
添加一項(xiàng)任務(wù)
public synchronized void addTask(Task
task) {
if (task
!= null)
{
queue.add(task);
}
}
//
完成任務(wù)后將它從任務(wù)隊列中刪除
public synchronized void finishTask(Task
task) {
if (task
!= null)
{
task.setState(Task.State.FINISHED);
queue.remove(task);
}
}
//
取得一項(xiàng)待執(zhí)行任務(wù)
public synchronized Task
getTask() {
IteratorTask
it = queue.iterator();
Task
task;
while (it.hasNext())
{
task
= it.next(); //
尋找一個新建的任務(wù)
if (Task.State.NEW.equals(task.getState()))
{ //
把任務(wù)狀態(tài)置為運(yùn)行中
task.setState(Task.State.RUNNING);
return task;
}
}
return null;
}
}
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class TaskQueue
{
private ListTask
queue = new LinkedListTask();
//
添加一項(xiàng)任務(wù)
public synchronized void addTask(Task
task) {
if (task
!= null)
{
queue.add(task);
}
}
//
完成任務(wù)后將它從任務(wù)隊列中刪除
public synchronized void finishTask(Task
task) {
if (task
!= null)
{
task.setState(Task.State.FINISHED);
queue.remove(task);
}
}
//
取得一項(xiàng)待執(zhí)行任務(wù)
public synchronized Task
getTask() {
IteratorTask
it = queue.iterator();
Task
task;
while (it.hasNext())
{
task
= it.next(); //
尋找一個新建的任務(wù)
if (Task.State.NEW.equals(task.getState()))
{ //
把任務(wù)狀態(tài)置為運(yùn)行中
task.setState(Task.State.RUNNING);
return task;
}
}
return null;
}
}
新聞名稱:隊列的java代碼 java消息隊列代碼
文章轉(zhuǎn)載:http://muchs.cn/article6/hjdpog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計、自適應(yīng)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、建站公司、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)