Lambda 表达式()->一点疑惑
threadPoolExecutor.execute(new XxxThread(parm1,parm2,parm3,parm4)); 会执行线程内 run 方法
threadPoolExecutor.execute(()->new XxxThread(parm1,parm2,parm3,parm4)); 不会执行线程内 run 方法
()空圆括号代表参数集为空,所以构造失败?
----------------------- 以下是精选回复-----------------------
答:后者的代码意思是,构造一个 Runnable 的匿名内部子类,run 方法内执行
`new XxxThread(parm1,parm2,parm3,parm4)`
这行代码,肯定不会跑 XxxThread 的 run 方法。。。
答:threadPoolExecutor.execute(()->new XxxThread(parm1,parm2,parm3,parm4));
等价于
threadPoolExecutor.execute(new Runable(){
public void run(){
new XxxThread(parm1,parm2,parm3,parm4);
}
});
当然不会执行
0条评论