出於好奇,是全部無限循環壞?所有無限循環都不好嗎?
- 如果運行無限循環會發生什麼壞的影響和後果?
- 此外,如果它們並不全是壞的,請給出一些例子,以便它們能夠達到有意義的目的嗎?
- 他們需要有東西來關閉實例嗎?例如,我們總是在Java中使用它之後關閉StreamReader(不知道爲什麼)。
出於好奇,是全部無限循環壞?所有無限循環都不好嗎?
我不確定你的意思是「壞」。
無限循環在許多場景中很常見,大多數是事件處理程序循環,其中程序位於無限循環中,並等待發生一些處理並返回等待的外部事件。這是圖形用戶界面和許多服務器編程的方式。
舉一個簡單的服務器的例子,監聽連接
這某種場景很常見,你會在事件處理中一直看到它。
負
他們需要有東西來關閉實例?
如果你能從外部殺死它,它是一個無限循環嗎? ;) – risingDarkness
編程中沒有任何東西是我朋友的無限;) – Robotnik
有時你會聽到這樣的話殺手循環,指的是一個嚴重的行爲循環(無限或其他)。通常保留用於無意中消耗大量CPU時間,內存或兩者的循環。所有的殺手循環都很糟糕。
根據您的糖尿病狀態,Froot循環也可能是殺手循環。
莫比烏斯帶是很好的無限循環。
術語「無限循環」最常用於程序中的循環,如果不存在可能終止它的外部動作,該循環不會終止。在大多數情況下,使用任何「中斷密鑰」將中斷信號發送到操作系統將證明它畢竟不是無限循環。而且電力浪涌或停電通常也會這樣做。而在某些操作系統的平臺上,可能會出現其他中斷信號並暫停進程。
因此僞無限循環對於除了某些「外部」影響之外不想終止的進程很有用。
在實時程序中,無限循環是正常的。看一下Arduino IDE - 暴露的唯一兩個函數是setup()和loop()。假定除非斷開電源,否則loop()將永遠不會退出。
事實上,循環函數會退出,但它會永遠被一次又一次地調用。即主函數基本上類似於: void main() setup(); while(1) loop(); } – frarugi87
我已經討論過在無限循環內重載計算機內存的文章。爲什麼GUI和服務器不會超載內存? – Theone
我不知道這些文章意味着什麼是超載。一個無限循環,只有一個單獨的sleep語句,不會影響機器的內存。 –
當無限循環內存在內存泄漏時,可能會發生內存過載。 – risingDarkness