请设计一个程序:使用多线程,统计程序源代码行数;源代码是可以编译通过的合法的代码,统计其物理总行数、其中的空行行数、其中含有有效代码的行数、其中含有注释内容的行数;(要求必须利用多线程编程,如果代码框架能更容易的扩展到支持多种语言的源代码行数统计,将获得更高的评价。