1

挂起时如何停止Java中的线程?我不能使用中断(),因为我无法检查挂起线程中的中断标志。stop() 也被弃用,因为它不安全。

提前致谢。

更新:线程挂在 Socket.connect() 上:

Method m = device.getClass().getMethod("createInsecureRfcommSocket",
            new Class[] { int.class });
final BluetoothSocket socket = (BluetoothSocket) m.invoke(device, port);
socket.connect();
4

1 回答 1

3

干净地关闭线程的唯一方法是必须优雅地停止自己。

如果线程在 Socket 读取或写入等资源上被阻塞,您可以尝试关闭它,它会触发 IOException。如何解除线程阻塞完全取决于它被阻塞的原因。

如果你强制一个线程停止,你已经放弃了它会优雅地停止的想法,在这种情况下Thread.stop()或者System.exit()是你唯一的选择。

于 2012-08-22T10:53:39.853 回答