多选题 关于下面程序,哪些结论是正确的?( ) public class J _Test { public static StringBuffer m_s; public static void main(String args[]) { for(int i=0;i< 1000;i++) { m_s=new StringBuffer("."); new Thread() { public void run() { synchronized(m_s) { m_s.append('B'); } }/ /方法run结束 }.start(); new Thread() { public void run() { synchronized(m_s) { m_s .insert(0,"A"); } }/ /方法run结束 }.start(); String s=new String(m_s); if(!s.equals("A.B")) System.out.println(m_s+"!="+"A.B"); } }/ /方法main结束 }/ /类J_Test结束 A、程序无法通过编译 B、程序可以通过编译并正常运行,输出的结果可能会包含字符串“AAAA.BBBBB!=A.B” C、程序可以通过编译并正常运行,输出的结果可能会包含字符串“.!= A.B’, D、程序可以通过编译并正常运行,输出的结果可能会包含字符串“AA.BB! =A.B”
【正确答案】 B、C、D
【答案解析】