多线程的内容不少,看起来费劲,主要看几个用得到的,
1,tools在搜索的时候,如果点击窗口,无法响应,甚至会死掉,现在明白这就是一个需要多线程的场景,在当前没有多线程的情况下,鼠标消息没有响应的机会,导致等待甚至挂死。
2,线程的理解,比较浅,先凑合用,实际用用就丰富了:
“系统准备一个进程环境可能需要好几M的空间,线程是一个物美价廉的选择,在一个Windows上拥有500个线程是一件很轻易的事情,但是500个进程将是难以想象的”;
“打印时。再比如网络程序,涉及数据包的收发,时间因素不定。使用独立的线程处理这些任务,可使程序无需专门等待结果”
“启动一个进程需要申请大量的系统资源,其中包括虚拟内存、文件句柄以及加载各种必要的动态链接库;线程则不需要以上动作,因为它共享进程中的所有资源”,
自己关于进程、线程资源的理解:
“创建一个进程就相当于增加一个收银台,包括其桌子,pos机,扫描机等等,而创建一个线程就相当于在一个收银台再加一个收银员,可以帮忙装装东西,也能加快处理速度”
3,这个似乎很重要,现在还没能理解:UI线程就是:拥有消息队列和窗口的线程,并且它的主要职责是处理窗口消息。Worker线程则没有消息队列,但是当Worker线程产生一个用户界面(消息框和模式对话框除外)时,则该线程则摇身一变,成为UI线程
至于SearchTool估计不会有线程之间的共享和通讯,主要就是各人干各人的事情,去检测不同范围的主机状态。如果有兴趣可以做些扩展功能,加到tools中去,用项目促进理解。