ThreadLocal執行緒池例項

2021-08-28 01:45:58 字數 1280 閱讀 1830

學習了多執行緒的理論後,下面我們來看工作中遇到的乙個具體例項。

public integer startareaindex(listactivityids) ", arealist);

if (collectionutils.isempty(arealist))

logtypeenum.activity_solr.info("-----------------solr常規頻道全量索引開始-----------------");

//乙個區塊執行乙個執行緒

iteratorareaiterator = arealist.iterator();

while (areaiterator.hasnext())

trycatch (exception e)

for (; ; ) catch (interruptedexception e)

if (count == 0)

}return 0;

}

private area area;

private wareservice solrwareservice;

private promoservice solrpromoservice;

private activityservice solractivityservice;

public void run() else if(areatype.equals(areatype.ware.gettype()))else if(areatype.equals(areatype.shop.gettype()))else if(areatype.brand.isequal(areatype))}}

public area getarea()

public void setarea(area area)

public void setsolrwareservice(wareservice solrwareservice)

public void setsolrpromoservice(promoservice solrpromoservice)

public void setsolractivityservice(activityservice solractivityservice)

}

public long indexbyarea(area area)

long areaid = area.getid();

return -1l;

}//查出該區塊下的所有**提報列表

}

ThreadLocal和執行緒池使用要注意的乙個地方

threadlocal可以簡單理解為key為當前thread的乙個map 簡單這麼理解 是簡單這麼理解,實際並不是 具體可參看 所以它和執行緒池一起使用的時候就會出現問題了,因為我們知道執行緒池有乙個好處就是會讓執行緒重用,避免建立過多的執行緒物件。也就是說有可能會出現threadlocal中的執行...

threadLocal 和 執行緒池 問題記錄

問題 在web應用中,獲取使用者的身份後,使用filter將身份資訊採用putifabsent的形式放在了 threadlocal 中。迴圈請求servlet,發現使用者身份沒有變化。解析只有當threadlocal的生命週期受限於task的生命週期時,在thread pool的thread裡使用t...

ThreadLocal與執行緒池使用的問題

感謝博主的這篇分享,見 在今天的面試中,突然被考官問了這個問題,當時脫口而出的是 threadlocal容易會有記憶體洩漏,需要注意remove。其實自己仔細想想,這個回答太過於結果了,沒有思考為何要配合執行緒池的時候,去remove。注意,這裡需要你的jdk版本為1.8及以上,否者清將lambda...