StringBuilder 与 StringBuffer 的问题
来源:6-5 谈谈ClassLoader
MySweeties
2019-10-07
看了问答区,有个问题不大明白,原图是:
不理解老师说的“如果执行完成,那么就会先输出结果“
写回答
3回答
-
同学好,join方法
你这里在For循环中,不仅仅每次调用atest.join都是主线程调用的,就连for循环,生成子线程去执行也是mian线程发动的。这里会出现串行,比如说生成第一个子线程执行的时候,由于main函数调用了join,那么它会等到第一个子线程执行完成才继续执行后续的for循环生成新的子线程2,依次类推,顺序执行并打印,就是你看到的结果。
另外一个,只能说你这样的执行对于cpu来说负担很小,执行效率很高,因此结果接近概率较大,多线程间的执行结果没法预期。
012019-10-08 -
MySweeties
提问者
2019-10-07
如上图:
00 -
翔仔
2019-10-07
同学好,这个真考验记忆力呀:)仔细看了下,当时要表达的意思是,现在有10个线程,共同操作同一个StringBuilder和StringBuffer对象,那10个线程执行完成有先后,并不是同时执行完成的,比如第一个线程先执行完成了,那么它就在run里面打印了结果,此时结果并不会等于10000呀,得等最后一个线程执行完成后,才打印10000.。。。
022019-10-07
相似问题