java多线程run方法传参

      我们知道多线程是通过star()方法让线程处于准备就绪状态,而实际运行的业务逻辑是放在run()方法体中的,但是run()方法是没有参数的方法,实际的业务场景中,我们可能需要向方法体中传递参数,下面介绍常用的两种传参方式,第三种下次再说,或者你们百度吧,这里偷个懒。

      第一种方式:构造方法传参

public class CallbackCustomerTypeThread implements Runnable
{
	public static final Logger logger = LoggerFactory.getLogger(CallbackCustomerTypeThread.class);
	private BasCmCustomerType basCmCustomerType;
	private BasCmCustomerTypeService basCmCustomerTypeService;

	public CallbackCustomerTypeThread(BasCmCustomerType basCmCustomerType, BasCmCustomerTypeService basCmCustomerTypeService)
	{
		this.basCmCustomerType = basCmCustomerType;
		this.basCmCustomerTypeService = basCmCustomerTypeService;
	}

	@Override
	public void run()
	{
		//向金剑南同步
		try
		{
			basCmCustomerTypeService.syncToJjn(basCmCustomerType);
		}
		catch (Exception e)
		{
			logger.info("向金剑南同步客户异常,id=" + basCmCustomerType.getId(), e);
		}

		//向水晶剑同步
		try
		{
			basCmCustomerTypeService.syncToSjj(basCmCustomerType);
		}
		catch (Exception e)
		{
			logger.info("向水晶剑同步客户异常,id=" + basCmCustomerType.getId(), e);
		}
	}

}

调用:

Runnable runnable = new CallbackCustomerTypeThread(basCmCustomerType, this);
		Thread thread = new Thread(runnable);
		thread.start();

第二种方式:通过变量或者方法传递参数

package mythread; 
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(); 
} 
} 

第三种:通过回调函数传递参数

    暂时不写了,滴~~~~  下班卡

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值