-
Notifications
You must be signed in to change notification settings - Fork 92
Open
Description
call thread.interrupt() and nothing happened. so how to stop the hanging thread?
Charset _charset = Charset.forName("GB18030");
/* text containing irregular binary data will make thread hang */
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
String key = "a"; // any character
byte[] pattern = key.getBytes(_charset);
Regex regex = new Regex(pattern, 0, pattern.length, Option.IGNORECASE, GB18030Encoding.INSTANCE);
byte[] source = new byte[]{0x2f, 0x2f, (byte) 0xaf}; // text content.
/* Encoded by GB18030, It reads "//�" where � means that "0xaf" is wrong or unsupported? */
System.out.println(new String(source, _charset));
Matcher matcher = regex.matcher(source);
// search Interruptible ?
int idx=matcher.searchInterruptible(0, source.length, Option.DEFAULT);
System.out.println(idx+"");
} catch (InterruptedException e) {
System.out.println("InterruptedException");
e.printStackTrace();
}
}
});
thread.start();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("interrupt !!! ");
thread.interrupt(); // called but not working.
}
}).start();
v2.1.30
Metadata
Metadata
Assignees
Labels
No labels