从我在Java中使用线程的时间开始,我发现了这两种编写线程的方法:
用implements Runnable:
public class MyRunnable implements Runnable {
public void run() {
//Code
}
}
//Started with a "new Thread(new MyRunnable()).start()" call
Run Code Online (Sandbox Code Playgroud)
或者,用extends Thread:
public class MyThread extends Thread {
public MyThread() {
super("MyThread");
}
public void run() {
//Code
}
}
//Started with a "new MyThread().start()" call
Run Code Online (Sandbox Code Playgroud)
这两个代码块有什么显着差异吗?
我在Node.js中使用amqplib,我不清楚代码中的最佳实践.
基本上,我当前的代码调用amqp.connect()Node服务器启动的时间,然后为每个生产者和每个使用者使用不同的通道,从不实际关闭它们中的任何一个.我想知道这是否有意义,或者我应该创建频道,每次要发布消息时发布和关闭它.那连接怎么样?这是一个"良好实践"连接一次,然后在我的服务器的生命周期中保持打开?
在消费者方面 - 我可以使用单个连接和单个通道来监听多个队列吗?
感谢您的任何澄清
进程是否必须至少包含一个线程?进程是否可能没有任何线程,或者这是否有意义?