Java Regex线程安全吗?
我有一个函数,该函数使用Pattern#compile
和Matcher
来搜索字符串列表中的模式。
此函数用于多个线程。每个线程将在Pattern#compile
创建线程时传递给的唯一模式。线程和模式的数量是动态的,这意味着我可以Pattern
在配置期间添加更多s和线程。
synchronize
如果使用正则表达式,是否需要在此函数上放一个?Java线程中的正则表达式安全吗?
回答:
,来自Pattern类的Java
API文档
此类(模式)的实例是不可变的,可以安全地由多个并发线程使用。Matcher类的实例不安全用于此类用途。
如果您正在查看以性能为中心的代码,请尝试使用reset()方法重置Matcher实例,而不是创建新实例。这将重置Matcher实例的状态,使其可用于下一个正则表达式操作。实际上,正是Matcher实例中维护的状态才使它对于并发访问不安全。
以上是 Java Regex线程安全吗? 的全部内容, 来源链接: utcz.com/qa/431213.html