use*_*594 4 java multithreading java-threads
我相信static main方法中使用的变量也应该也是static如此.问题是我根本不能使用this这种方法.如果我没记错的话,我必须用commnad启动线程myThread = new ThreaD(this).
以下代码产生错误,因为我this在线程启动中使用.我在这做错了什么?
package app;
public class Server implements Runnable{
static Thread myThread;
public void run() {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
System.out.println("Good morning");
myThread = new Thread(this);
}
}
Run Code Online (Sandbox Code Playgroud)
Nat*_*hes 12
你不能使用this因为main是一个静态方法,this指的是当前实例而没有.您可以创建一个可以传递给线程的Runnable对象:
myThread = new Thread(new Server());
myThread.start();
Run Code Online (Sandbox Code Playgroud)
这将导致您在Server类的run方法中放置的任何内容都由myThread执行.
这里有两个独立的概念,Thread和Runnable.Runnable指定需要完成的工作,Thread是执行Runnable的机制.虽然Thread有一个可以扩展的run方法,但是你可以忽略它并使用一个单独的Runnable.
| 归档时间: |
|
| 查看次数: |
15961 次 |
| 最近记录: |