「java线程参数」多线程的参数

博主:adminadmin 2023-01-05 00:39:07 507

今天给各位分享java线程参数的知识,其中也会对多线程的参数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中线程Thread有没有带参数的run方法呀

没有,线程中没有带参数的run方法。

如果想要实现带参数的run方法:

1、定义线程内变量

2、在继承thread的时候,增加带参数的构造函数,初始化线程内变量

3、在run方法操作线程内变量,以达到类似传参的效果。

示例:

class MyThread extends Thread{

    int a = 0;//定义线程内变量

    public MyThread(int a){//定义带参数的构造函数,达到初始化线程内变量的值

       this.a=a;

    }

    @Override

    public void run() {

        this.a++;//线程内变量自增

    }

}

java中如何给Runnable线程传参?

Java中给Runnable线程传参数的方式如下:

向线程中传递数据的三种方法:

一、通过构造函数传递参数

public class MyThread1 extends Thread

{

    private String name;

    public MyThread1(String name)

    {

        this.name = name;

    }

    public void run()

    {

        System.out.println("hello " + name);

    }

    public static void main(String[] args)

    {

        Thread thread = new MyThread1("world");

        thread.start();        

    }

}

二、通过变量和方法传递数据

public class MyThread2 implements Runnable

{

    private String name;

    public void setName(String name)

    {

        this.name = name;

    }

    public void run()

    {

        System.out.println("hello " + name);

    }

    public static void main(String[] args)

    {

        MyThread2 myThread = new MyThread2();

        myThread.setName("world");

        Thread thread = new Thread(myThread);

        thread.start();

    }

}

三、通过回调函数传递数据

class Data

{

    public int value = 0;

}

class Work

{

    public void process(Data data, Integer numbers)

    {

        for (int n : numbers)

        {

            data.value += n;

        }

    }

}

public class MyThread3 extends Thread

{

    private Work work;

    public MyThread3(Work work)

    {

        this.work = work;

    }

    public void run()

    {

        java.util.Random random = new java.util.Random();

        Data data = new Data();

        int n1 = random.nextInt(1000);

        int n2 = random.nextInt(2000);

        int n3 = random.nextInt(3000);

        work.process(data, n1, n2, n3);   // 使用回调函数

        System.out.println(String.valueOf(n1) + "+" + String.valueOf(n2) + "+"

                + String.valueOf(n3) + "=" + data.value);

    }

    public static void main(String[] args)

    {

        Thread thread = new MyThread3(new Work());

        thread.start();

    }

}

java runnable线程如何传参?

Runnable里面没有传参函数,所以得自己造一个

0.自定义一个接口,继承Runnable,新增一个传参方法

public interface MyRunnable extends Runnable{

   public MyRunnable setParam(String... param);

}

实现这个自定义接口

MyRunnable sendMessage = new MyRunnable() {

    String message;

    @Override

    public MyRunnable setParam(String... param) {

        message = param[0];

        return this;

    }

    @Override

    public void run() {

        sendMessage(message);

    }

};

2.初始化线程池,运行Runnable

 ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

 cachedThreadPool.execute(sendMessage.setParam("I am service"));

如上所示,线程池调用的一个runnable实例,这个runnable实例传入了一个字符串参数

Java线程池几个参数

corePollSize:核心线程数。

maximumPoolSize:最大线程数。

keepAliveTime:空闲的线程保留的时间。

TimeUnit:空闲线程的保留时间单位。

BlockingQueueRunnable:阻塞队列,存储等待执行的任务。

ThreadFactory:线程工厂,用来创建线程。

RejectedExecutionHandler:队列已满,而且任务量大于最大线程的异常处理策略。

关于java线程参数和多线程的参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。