隊列的java代碼 java消息隊列代碼

java多線程共同操作同一個隊列,怎么實(shí)現(xiàn)?

具體代碼如下:

創(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為隊列添加了一個元素

JAVA程序利用List編寫隊列結(jié)構(gòu),求簡易代碼

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);

}

}

}

怎樣用java代碼實(shí)現(xiàn)一個隊列

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;

}

}

javaweb任務(wù)列隊怎么做

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)

成都seo排名網(wǎng)站優(yōu)化