記錄一下ByteBuffer呼叫路徑

2021-08-31 14:59:26 字數 726 閱讀 3738

在某個地方_endpoint.fill(buffer);

呼叫_channel.read(bbuf);

這裡看一下socketchannelimpl.read方法

然後呼叫ioutil.read(fd, bytebuffer, -1l, nd, readlock);

if(bytebuffer instanceof directbuffer)

return readintonativebuffer(filedescriptor, bytebuffer, l, nativedispatcher, obj);

bytebuffer1 = null;

int j;

bytebuffer1 = util.gettemporarydirectbuffer(bytebuffer.remaining());

int i = readintonativebuffer(filedescriptor, bytebuffer1, l, nativedispatcher, obj);

bytebuffer1.flip();

if(i > 0)

bytebuffer.put(bytebuffer1);

如果是使用了directbuffer,那麼直接從網絡卡(socket)讀取資料放入buffer裡

否則生成乙個臨時的directbuffer,然後讀取資料,再後做兩個buffer的複製工作

2020 06 07記錄一下

軟體測試技術型方向 自動化測試工程師,效能測試工程師,安全測試工程師等專項技術方發展 初級軟體測試人員專業知識 1 軟體功能測試技術,體現在用例設計和缺陷設計兩方面。主要包括軟體需求規格說明書的評審 測試計畫 測試用例設計技術 環境搭建 測試執行 缺陷提交 回歸測試 測試報告等。2 web自動化測試...

記錄一下進展

最近倆周都在除錯caffe的windows和matlab聯合使用,真的是超級鬱悶的一段時間。caffe編譯通過,但是目前有些不能用,當使用image data時,prototxt檔案解析失敗,我也不知道到底怎麼回事。另外乙個,在matlab呼叫caffe的mex檔案時,總是在初始化就失敗了。具體原因...

記錄一下 exists 用法

在 mysql 中,插入 insert 一條記錄很簡單,但是一些特殊應用,在插入記錄前,需要檢查這條記錄是否已經存在,只有當記錄不存在時才執行插入操作,本文介紹的就是這個問題的解決方案。問題 我建立了乙個表來存放客戶資訊,我知道可以用 insert 語句插入資訊到表中,但是怎麼樣才能保證不會插入重複...