「java线程参数」多线程的参数
今天给各位分享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线程参数和多线程的参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。