Perl核心增强特性深度解析
1. 解释器克隆、线程与并发
Perl 5.6.0 开始支持在不同线程中并发运行多个解释器。结合 perl_clone() API 调用(可用于有选择地复制任何给定解释器的状态),可以在一个解释器中编译一次代码,克隆该解释器一次或多次,并在不同线程中运行所有生成的解释器。
在 Windows 平台上,此功能用于在解释器级别模拟 fork() 。
此功能仍在发展中,最终旨在有选择地克隆一个子例程及其可访问的数据到一个单独的解释器中,并在一个单独的线程中运行克隆的子例程。由于解释器之间没有共享数据,因此几乎不需要或不需要锁定(除非显式共享符号表的某些部分),这显然旨在成为现有线程支持的易用替代品。
启用解释器克隆和解释器并发支持的操作步骤如下:
- 使用 -Dusethreads 配置选项(在 Windows 上启用方法见 win32/Makefile )。生成的 Perl 可执行文件在功能上与使用 -Dmultiplicity 构建的文件相同,但 perl_clone() API 调用仅在前者中可用。
- -Dusethreads 默认启用 cpp 宏 USE_ITHREADS ,这反过来又会启用 Perl 源代码更改,从而在操作树和它操作的数据之间提供清晰的分离。操作树是不可变的,因此可以在解释器及其所有克隆之间共享,而数据被认为是每个解释器本地
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



