我是处理多线程的新手。我有一点感到困惑并寻求澄清。我在主程序中有以下内容:
String hostname = null;
ExecutorService threadExecutor = Executors.newFixedThreadPool(10);
MyThread worker = null;
while(resultSet.next()) {
hostname = resultSet.getString("hostName");
worker = new MyThread(hostname);
threadExecutor.execute( worker );
}
threadExecutor.shutdown();
while (!threadExecutor.isTerminated()) {
threadExecutor.awaitTermination(1, TimeUnit.SECONDS);
}
实现runnable的类是:
public class MyThread implements Runnable{
String hostname=null;
MyThread (String hostname) {
this.hostname=hostname;
System.out.println("New thread created");
}
public void run() {
Class1 Obj1 = new Class1();
try {
obj1.Myfunction(hostname);
} catch (Exception e) {
System.out.println("Got an Exception: "+e.getMessage());
}
}
}
我有一个名为主机名的变量。每个线程都需要获取这个变量,因为它必须传递给Myfunction
每个线程需要执行的函数。
我在构造函数中定义了一个名为 hostname 的变量。然后我将变量发送hostname
到,MyFunction(hostname).
因为hostname
在类中定义MyThread
,然后它作为参数发送到Myfunction
的主机名是线程的主机名。
不知道有没有必要做任务this.hostname=hostname
??我什么时候需要写这个词this.
?我需要将主机名与单词一起发送到 Myfunctionthis.
吗?