TRA-1

作者: 小红军storm | 来源:发表于2020-10-19 10:35 被阅读0次

    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``;`
    
    `}`
    
    `};`
    

    相关文章

      网友评论

          本文标题:TRA-1

          本文链接:https://www.haomeiwen.com/subject/mbkkmktx.html