在处理DNS日志汇总的时候,
1,寻找多线程的开启地点,在刚开始的必须先找到这个线程安放的地点这个很重要,一般情况在主线程中安放,
2,找好了开启多线程的地点之后,选择使用线程还是线程池,线程池适用于少而多执行快的线程,我这里是处理日志汇总,比较消耗时间所以我选择了线程。
3,处理日志汇总时,我是根据路径的多少来创建线程的,不知道路径的个数,所以使用了动态线程。
4,其次最头疼的是全局变量的安置问题,由于第一次处理我用了最通俗的方法,设置临时变量,用临时变量替换全局变量,之后将这些临时变量封装在一个类中,再通过list进行调用。
5,为了区分动态线程创建的每个线程,我将Thread也封装在了list里面刚开始没有将Thread与临时变量的List联系起来出现了些问题线程比较混乱逻辑也不清晰,之后将创建线程的list也封装在临时变量的类中就很顺利的创建了线程并且执行结束。
结尾我说下两个多线程的创建
线程池的多线程
ThreadPool.QueueUserWorkItem(newWaitCallback(dns.Start));
线程
Thread thread = newThread(dns.Start);括号里面是开启线程的程序的调用
thread.Start(arrayListPath[i]);里面是传递的参数
本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/1254100,如需转载请自行联系原作者