TRA-1

Tips

限制網速可以讓某個下載線程sleep

Review

線程池的主要參數
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) {
this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
Executors.defaultThreadFactory(), defaultHandler);
}
1、corePoolSize(線程池基本大小):當向線程池提交一個任務時,若線程池已創建的線程數小於corePoolSize,即便此時存在空閒線程,也會通過創建一個新線程來執行該任務,直到已創建的線程數大於或等於corePoolSize時,(除了利用提交新任務來創建和啓動線程(按需構造),也可以通過 prestartCoreThread() 或 prestartAllCoreThreads() 方法來提前啓動線程池中的基本線程。)

2、maximumPoolSize(線程池最大大小):線程池所允許的最大線程個數。當隊列滿了,且已創建的線程數小於maximumPoolSize,則線程池會創建新的線程來執行任務。另外,對於無界隊列,可忽略該參數。

3、keepAliveTime(線程存活保持時間)當線程池中線程數大於核心線程數時,線程的空閒時間如果超過線程存活時間,那麼這個線程就會被銷燬,直到線程池中的線程數小於等於核心線程數。

4、workQueue(任務隊列):用於傳輸和保存等待執行任務的阻塞隊列。

5、threadFactory(線程工廠):用於創建新線程。threadFactory創建的線程也是採用new Thread()方式,threadFactory創建的線程名都具有統一的風格:pool-m-thread-n(m爲線程池的編號,n爲線程池內的線程編號)。

5、handler(線程飽和策略):當線程池和隊列都滿了,再加入線程會執行此策略。

Algorithm

括號序列

class Solution {

public bool` `isValid(string s) {`

stack<char>st;`

for(int i=0;i<s.size();i++)`{

`if``(s[i]==``'('``||s[i]==``'['``||s[i]==``'{'``)`

`st.push(s[i]);`
else`

`{`

`if``(st.empty())`

`return` `false``;`

`else`

`{`

`if``(s[i]==``')'``&&st.top()==``'('``)`

`st.pop();`

`else` `if``(s[i]==``']'``&&st.top()==``'['``)`

`st.pop();`

`else` `if``(s[i]==``'}'``&&st.top()==``'{'``)`

`st.pop();}

`}`

`}`

`if``(st.empty())`

`return` `true``;`

`else` 

`return` `false``;`

`}`

`};`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章