多客户端服务器使用:哪种方法更好
Multi-client server use: which method better
创建多客户端服务器使用扩展 Thread
或在 Java 中实现 Runnable
。
正在使用
public class Receiver implements Runnable {
或
public class Receiver extends Thread {
哪个更适合我的代码?
实现 Runnable 总是更好,如果您使用 Runnable,您可以使用线程或线程池执行它
请阅读
"implements Runnable" vs "extends Thread" in Java
了解更多详情
这里有一些链接可以帮助您找到答案
https://www.geeksforgeeks.org/implement-runnable-vs-extend-thread-in-java/
"implements Runnable" vs "extends Thread" in Java
在你的具体情况下,我认为(猜测)你的 Receiver class 不是 Thread (通过OOP) 但 应该在 Thread 或 Perform Multi-threaded 中工作,这意味着它不应该扩展 Thread (没有 is -a Receiver 和 Thread)
之间的关系
执行器框架
我假设你在写“多客户端服务器”的地方指的是“多线程”。
现代 Java 我们很少手动管理线程。我们现在有了 Executors 框架来处理杂耍线程的细节。所以不需要扩展 Thread
.
后台线程上的 运行 任务应写成 Runnable
或 Callable
,然后提交给执行程序服务。请参阅 Executors
class 以生成执行程序服务。
您会得到一个 Future
对象,可以检查该对象是否正在完成、已取消或仍未完成的任务。
这已在 Stack Overflow 上多次解决。搜索以了解更多信息。
创建多客户端服务器使用扩展 Thread
或在 Java 中实现 Runnable
。
正在使用
public class Receiver implements Runnable {
或
public class Receiver extends Thread {
哪个更适合我的代码?
实现 Runnable 总是更好,如果您使用 Runnable,您可以使用线程或线程池执行它
请阅读 "implements Runnable" vs "extends Thread" in Java
了解更多详情
这里有一些链接可以帮助您找到答案
https://www.geeksforgeeks.org/implement-runnable-vs-extend-thread-in-java/ "implements Runnable" vs "extends Thread" in Java
在你的具体情况下,我认为(猜测)你的 Receiver class 不是 Thread (通过OOP) 但 应该在 Thread 或 Perform Multi-threaded 中工作,这意味着它不应该扩展 Thread (没有 is -a Receiver 和 Thread)
之间的关系执行器框架
我假设你在写“多客户端服务器”的地方指的是“多线程”。
现代 Java 我们很少手动管理线程。我们现在有了 Executors 框架来处理杂耍线程的细节。所以不需要扩展 Thread
.
后台线程上的 运行 任务应写成 Runnable
或 Callable
,然后提交给执行程序服务。请参阅 Executors
class 以生成执行程序服务。
您会得到一个 Future
对象,可以检查该对象是否正在完成、已取消或仍未完成的任务。
这已在 Stack Overflow 上多次解决。搜索以了解更多信息。