我目前正与Netty.io
合作创建一个实验项目,在该项目中,我将多个服务器实例(不同的侦听端口)嵌套到一个应用程序中。然而,Netty几乎接管了ChannelFuture
绑定的线程。 Blocks the thread
如果愿意的话。
正因为如此,我已经决定我需要创建一个TPS设置,类似于TPC(每个客户端的线程),应用程序将为每个服务器实例使用一个线程。
然而,这是一个问题。我创建线程的唯一一次是当我需要执行一个runnable方法时;但是现在我试图将一个类的整个实例绑定到该线程,并且我对如何解决这个问题感到很困惑。
我知道的唯一方法(即使经过大约两个小时的研究)也可以模拟这一点,但是它感觉不对。
public class Foo {
public FooBar fooBar;
private Foo() {
System.out.println("Foo Thread: " + Thread.currentThread().getId());
new Thread(new Bar(this)).start();
}
public static void main(String[] args) {
new Foo();
}
}
class Bar implements Runnable {
Foo foo;
public Bar(Foo foo) {
this.foo = foo;
}
@Override
public void run() {
foo.fooBar = new FooBar();
}
}
class FooBar {
public FooBar() {
System.out.println("FooBar Thread: " + Thread.currentThread().getId());
}
}
上面的代码是可执行的,但这是正确的方法吗?这对我来说似乎很狡猾,但我对此并没有多少经验。
答案 0 :(得分:-4)
据我所知,这是一个"如何在Java问题中创建一个线程"。您的示例是创建线程的可接受方式。为简洁起见,也可以使用匿名内部类:
(new Thread() { public void run() { /* enter code here */ }).start();