【问题标题】:Put a main function args inside the thread in java在java中的线程内放置一个main函数args
【发布时间】:2016-11-03 05:34:51
【问题描述】:

我在 java 中遇到了线程问题。 这是我实现线程的类:

public class SensorAddClient extends Thread implements Runnable {
String[] args = new String[3];
@Override
public void run(){
try {
    SensorClient.main(args);//this is the main function i wanna get executed on my args
} catch (IOException e) {
    e.printStackTrace();
} catch (JSONException e) {
    e.printStackTrace();
}}

然后当我需要激活线程时,我会使用以下 2 行来调用它:

SensorAddClient cl = new SensorAddClient(); cl.start();

我必须启动一个线程,它的运行只需要调用一个使用 args 执行的特定类,所以我调用该类的主函数,有什么方法可以使我调用的类的主函数得到用我想要的 args 执行? 所以我可以把元素放在上面吗: 字符串[] args = 新字符串[3];在执行线程运行之前?那可能吗 ? 任何帮助将不胜感激,在此先感谢您:)

【问题讨论】:

  • 不太确定我是否理解您的问题,您到底遇到了什么问题?你想将参数传递给你的runnable吗?
  • 您是否尝试在线程中运行您的入口点 (public static main)?
  • @user1875195 如果没有很好地解释,我很抱歉。我想说的是,当我启动线程时,我希望它能够在我调用 args 的那个字符串数组上添加值,所以我在 run 方法上调用的 SensorClient 的 main 获取了我选择的那些 args。但我不想使用 system.in。
  • @giannisf 很好,我试图通过一个线程运行一个类的主体,但我希望它与我想要的参数一起运行。因为实际上当我运行 SENSORCLIENT 类时,我从控制台输入了参数
  • @Anja.M 在哪里开始线程?

标签: java multithreading main


【解决方案1】:

创建一个构造函数并在其中添加值:

public class SensorAddClient extends Thread implements Runnable {
String[] args = new String[3];

public SensorAddClient(String[] args) {

 this.args = args;

}
@Override
public void run(){
try {
    SensorClient.main(args);//this is the main function i wanna get executed on my args
} catch (IOException e) {
    e.printStackTrace();
} catch (JSONException e) {
    e.printStackTrace();
}}

【讨论】:

  • 嗯,是的,但它有点复杂,因为我想放置的参数是保存在我启动线程的第三个类中的变量。我不知道我解释得对
  • @传递结构中的参数,我改变了答案
  • @Anja.M 欢迎您。请阅读有关 OOP/Java 的教程,因为构造函数非常基础。
猜你喜欢
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
  • 2019-09-26
  • 2014-11-23
  • 2019-03-19
相关资源
最近更新 更多