先介紹乙個資料結構weakhashmap
weakhashmap大致上就是,通過weakreference和referencequeue實現的。
weakhashmap是通過陣列table儲存entry(鍵值對),entry繼承weakreference,最終繼承reference
weakhashmap還有referencequeue,是乙個佇列,它會儲存被gc**的「弱鍵」。
問題:如何自動刪除entry的?
裡面有個函式expungestaleentries。就是從referencequeue取出資料,然後找到在table中的位置,然後刪除,也就是所謂的同步
glide的into函式
public
> y into(@nonnull y target)
request previous = target.getrequest();
if (previous != null)
requestoptions.lock();
request request = buildrequest(target);
target.setrequest(request);
requestmanager.track(target, request);///
return target;
}void track(target<?> target, request request)
public
void
begin() else
if ((status == status.running || status == status.waiting_for_size)
&& cannotifystatuschanged())
......
}public
void
onsizeready(int width, int height)
public
loadstatus load(/****/)
private
void
switch (runreason)
}
@override
public resourcedecode(datatype source, int width, int height, options options)
throws ioexception
}
decode那句,找到實現方法bytebufferbitmapdecoder.decode。一直搜尋下去,會看到熟悉的
bitmapfactory.decodestream(is, null, options);
就是最終的實現(一直要往裡面搜尋好幾層呢)
總結:管理靠的是weakhashmap,呼叫看的是enginejob,執行看的是decodejob
JSP中的request物件
jsp中的request物件 佟強 2008.10.9 request物件實現了httpservletrequest介面,通過它可以獲得使用者的請求引數,獲得cookie,獲得http請求頭,獲得使用者的ip位址等等。request物件的主要方法有 getparameter string name ...
kernel中的函式 request
下圖為示意圖,讀者可以參考該圖來閱讀 個人認為對linux下i o資源的管理如掌握 request region函式就能掌握其精髓。linux下對i o資源主要用結構體resource來管理,管理的方法就是用resource來描述使用的i o資源的狀態,並將這些resource用如下兩個resour...
django 中的 request 物件
我們知道當urlconf檔案匹配到使用者輸入的路徑後,會呼叫對應的view函式,並將httprequest物件作為第乙個引數傳入該函式。django 每乙個view函式的第乙個引數都是request,有沒想過request裡面到底有什麼呢?django使用request和response物件在系統間...