为啥看并发源码中,经常使用for(;;)而不是使用while(true)?

在看并发源码的时候,很多时候源码中都使用for(;;)而不是使用while(true),这两个有什么区别吗? 首先“死循环”有两种写法:for(;;)和while(true),在java里面,最简单有效的办法就是打印字节码看一下


为啥看并发源码中,经常使用for(;;)而不是使用while(true)?

字节码一模一样,能有啥区别?因此,在java里面,就看个人的爱好了,二者没区别!
while(1)在编译后:

for(;;)在编译后:
mp foo+23h

这里的区别就非常明显了,for(;;)在c语言中指令较少,也能够节省内存,没有判断跳转,是比while(1)更好的无限循环。


分享到:


相關文章: