多執行緒讀取迴圈佇列的實現

2021-05-05 11:54:18 字數 1925 閱讀 6234

import org.apache.log4j.logger;

/*** 迴圈佇列小工具,可以包括如下功能:

* 1. 可以放入物件,可以取出

* 2. 當放入物件已滿,可以判斷,物件出口是否關閉,如果關閉那麼就代替最舊的物件,如果出口比較慢

*    可以等待一下

* 3. 出口能獲得物件池中最舊的那個物件。

* 4. 服務端不能依賴於客戶端的鏈結,能處理客戶端的斷開和鏈結。

* * @author zjfan**/

public class cyclequeuecontainer

public synchronized static cyclequeuecontainer getinstance()

return instance;

}private node nodehead;

private node nodetail;

private boolean fullalarm = false;

private boolean sleepsign = false;

private int threadsleepsecond = 60;

private string addobjthreadname = "thread-0";

public void setthreadsleepsecond(int threadsleepsecond)

public void setaddobjthreadname(string addobjthreadname)

public void setupcyclequeue(int queuelength)

nodenew.next = nodere;

nodehead = nodere;

nodetail = nodere;

log.info("迴圈佇列建立成功,佇列長度:" + queuelength);

}/**

* 對外視窗

* * @return

*/public object getobjfrocontainer()

/*** 對外視窗

* * @param obj

*/public void addobjtocontainer(object obj)

/*** 主要負責新增物件執行緒是否休息

* * @param operatetype

* @param obj

* @return

*/private object operatecontainer(boolean operatetype, object obj) catch (interruptedexception e)

sleepsign = false;}}

return obj_re;

}/**

* 同步操作迴圈佇列

* * @param operatetype true: 向佇列加物件,false: 從佇列取資料;

* @param obj

* @return

*/private synchronized object operatequeue(boolean operatetype, object obj) else

}private void addobject(object obj) else

} else

}private object pollobject() else

}/**

* 判斷佇列是否滿

* * @return

*/private boolean isqueuefull() else

}/**

* 判斷佇列是否為空

* * @return

*/private boolean isqueueempty() else

}private class node

}

Tensorflow的佇列多執行緒讀取資料

在tensorflow中,有三種方式輸入資料 1利用feed dict送入numpy陣列 2利用佇列從檔案中直接讀取資料 3預載入資料 其中第一種方式很常用,在tensorflow的mnist訓練原始碼中可以看到,通過feed dict 可以將任意資料送入tensor中。第二種方式相比於第一種,速度...

多執行緒併發佇列實現

2.使用 wait notify 實現乙個佇列,佇列有2個方法,add 和 get add方法往佇列中新增元素,get方法往佇列中獲得元素。佇列必須是執行緒安全的。如果get執行時,隊列為空,執行緒必須阻塞等待,直到有佇列有資料。如果add時,佇列已經滿,則add執行緒要等待,直到佇列有空閒空間。1...

多執行緒, 執行緒佇列

self performselectoronmainthread selector refreshcellforliveid withobject userinfo waituntildone yes 該方法的作用是在主線程中,執行制定的方法 塊 引數 selector refreshcellfor...