- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public static void main(String[] args) throws Exception {
final Exchanger<String> exchanger = new Exchanger<String>();
new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println(Thread.currentThread().getName() + exchanger.exchange("this came from subthread"));
} catch (InterruptedException ex) {
System.out.println("interrupted while waiting for message");
}
}
}).start();
System.out.println(Thread.currentThread().getName() + exchanger.exchange("this came from main thread"));
String s = exchanger.exchange("this came from main thread");
}
输出
mainthis came from subthread
Thread-0this came from main thread
为什么 JVM 这里永远不会退出?
最佳答案
您的线程中有 1 个交换点,但主线程中有 2 个交换点。因此,第二次交换:String s = Exchanger.exchange("this come from main thread");
永远等待并阻止 JVM 退出。如果您在该行之后添加打印语句,您将看到它不会被执行。
如果您在线程中添加第二个交换器,程序将退出:
public void run() {
try {
System.out.println(Thread.currentThread().getName() + exchanger.exchange("this came from subthread"));
exchanger.exchange("allow JVM to exit here");
} catch (InterruptedException ex) {
System.out.println("interrupted while waiting for message");
}
}
关于java - 交换器 : JVM never stops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13987840/
我正在尝试编写一个应用程序来测试将 N 个交换器绑定(bind)到内存、IO 等相同队列的效果。 所有测试都使用“主题”交换类型。我遇到的问题是,当我测试超过 1 个交换时,我没有收到我发布回来的所有
这似乎是一个非常基本的操作,但我找不到在 RabbitMQ 中删除命名交换的方法。我在 Windows 上运行它并使用命令行工具。在这一点上,如果存在的话,我会接受一个 .NET API 调用来删除一
public static void main(String[] args) throws Exception { final Exchanger exchanger = new Exchan
我有一个显示 3 张图片的页面,用户应该点击其中一张,然后点击“下一步”按钮继续。 基本上,我只是在点击图像时向图像添加一些 CSS。 但是...我的代码很丑陋,并且不跟踪他们是否已经选择了一个。
我使用RabbitMQ和Spring AMQP发送消息。 我有这个片段: rabbitTemplate.convertAndSend(exchange, key, object); 当我在单个 VHO
我尝试根据此网站启用交换:https://linuxize.com/post/create-a-linux-swap-file/ 当我跑 sudo swapon /swapfile ,它返回了这个错误
我是一名优秀的程序员,十分优秀!