作者:也曾悲摧过_192 | 来源:互联网 | 2023-05-22 11:53
1> Yuras..:
它不会因堆栈溢出而崩溃,因为默认情况下堆栈现在是无限的.也就是说,默认的GHC运行时行为是允许堆栈无限增长 - 没有绑定可以触发堆栈溢出错误.
https://ghc.haskell.org/trac/ghc/ticket/8189
这是一个如何工作的描述:
线程堆栈(包括主线程的堆栈)存在于堆上.随着堆栈的增长,根据需要添加新的堆栈块; 如果堆栈再次收缩,这些额外的堆栈块将被垃圾收集器回收.默认的初始堆栈大小是故意小的,以便将创建线程的时间和空间开销保持在最低限度,并使得即使是很小的工作也可以生成线程.