jiayin's profile看天下美景吃天下美味PhotosBlogLists Tools Help

Blog


    November 02

    Bad design导致俩线程还不如一个

    一个UDP应用,应用层确认/重传,凡是没收到确认的就重发一次。客户端用了俩线程,一个不停的收包,收到就放到一个queue中,另一个是主程序,发现 queue里面有包就一个一个拿出来处理。结果大量的重传发生,有时候在queue里面堵了200多个包才切换线程给主程序处理。一狠心干脆改成一个线程,有包就收,收了就处理,处理完了再等着收,反而重传率下降了。
    想一下,其实问题就在重传的时候客户端没做比较,一个包被不停的重发,被客户端当作不同的包收下来囤着。。。
    不是啥时候都Multithreading就好的