[Java] 如何中断一个长时间运行的“无限”Java正则表达式 →→→→→进入此内容的聊天室

来自 , 2019-05-18, 写在 Java, 查看 120 次.
URL http://www.code666.cn/view/82b8a343
  1.     InterruptibleRegexExample.java
  2.     public class InterruptibleRegexExample
  3.     {
  4.        public static void main(String[] args) throws InterruptedException
  5.       {
  6.       final Pattern pattern = Pattern.compile("(0*)*A");
  7.       final String input = "00000000000000000000000000";
  8.       Runnable runnable = new Runnable() {
  9.          @Override
  10.          public void run()
  11.          {
  12.             long startTime = System.currentTimeMillis();
  13.             Matcher interruptableMatcher = pattern.matcher(new InterruptibleCharSequence(input));
  14.             interruptableMatcher.find(); // runs for a long time!
  15.             System.out.println("Regex took:" + (System.currentTimeMillis() - startTime) + "ms");
  16.          }
  17.       };
  18.       Thread thread = new Thread(runnable);
  19.       thread.start();
  20.       Thread.sleep(500);
  21.       thread.interrupt();
  22.       }
  23.     }
  24. //源代码片段来自云代码http://yuncode.net
  25.                        

回复 "如何中断一个长时间运行的“无限”Java正则表达式"

这儿你可以回复上面这条便签

captcha