flex/lex yacc/bison 多线程环境
我可以在多线程环境中使用由flex/bison|lex/yacc生成的代码吗?恐怕有很多全局变量。如何解决?
Can I use the code generated by flex/bison|lex/yacc in a multithreaded environment ? I'm afraid there are a lot of global variables. How can it be fixed ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
借助 flex,您可以使用
%option reentrant
并使用 bison%pure-parser
来生成不具有全局数据的可重入代码。您可能仍然需要某种同步来防止多个线程同时使用相同的数据块。With flex you can use
%option reentrant
and with bison%pure-parser
to generate re-entrant code that does not have global data. You may still need some sort of synchronization to prevent multiple threads using the same data blocks at the same time.