java - 使用线程作为对象

标签 java multithreading oop object

如何将线程用作对象?我尝试这样做。

对象类别

public class Object implements Runnable{
public String name = "";
public void run(){
  //logic code here
}
}

我通过这样做来调用它。

Thread contract1 = new Thread(new Object());
    contract1.name = "foo";
    contract1.start();

我收到错误

The field Thread.name is not visible

什么是最足智多谋且所需代码量最短的方法?

谢谢。

最佳答案

public class YourRunnable implements Runnable{
   private String name;

   public YourRunnable(String name) {
       this.name = name;
   }

   public void run() {
      //logic code here
   }
}

然后

Thread contract1 = new Thread(new YourRunnable("foo"));
contract1.start();

所以使用构造函数。

编辑:但是要做你想做的事,你要做的就是

public class YourRunnable implements Runnable{
   public String name;

   public void run() {
      //logic code here
   }
}

然后

YourRunnable yourRunnable = new YourRunnable();
Thread contract1 = new Thread(yourRunnable);
yourRunnable.name = "foo";
contract1.start();

关于java - 使用线程作为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301171/

相关文章:

java - Scala:围绕建议或 Python 装饰器实现 Java 的 AspectJ

java - Android 构建 : JarJar can't find or load main class

java - 遍历 URL 文件并计算其大小的最快方法是什么?

java - 设置 Java 多线程亲和性

java - 追寻失踪的任务: potential discrepancy between reported task numbers and results

iphone - 我的应用程序在 Iphone SDK 3.2 上崩溃

c# - OOP——C# 中的消息传递

perl - 为条件 OO 模块加载编写包装器模块的正确方法是什么?

c# - 如何在 C# 中创建子类?

java - 查看 Activity 中的 View