packagecom.Thread;publicclassThreadTest2_2{publicstaticvoidmain(String[] args){//1.直接创建Runnable接口匿名内部类形式(任务对象)Runnable target =newRunnable(){@Overridepublicvoidrun(){for(int i =1; i <=5; i++){System.out.println("子线程1输出:"+ i);}}};newThread(target).start();//简化形式1:newThread(newRunnable(){@Overridepublicvoidrun(){for(int i =1; i <=5; i++){System.out.println("子线程2输出:"+ i);}}}).start();//简化形式2(lambda表达式):newThread(()->{for(int i =1; i <=5; i++){System.out.println("子线程3输出:"+ i);}}).start();for(int i=1; i<=5; i++){System.out.println("主线程main输出:"+ i);}}}
3.实现Callable接口
packagecom.Thread;importjava.util.concurrent.Callable;/**
* 1.让这个类实现Callable接口
*/publicclassMyCallableimplementsCallable<String>{privateint n;publicMyCallable(int n){this.n = n;}//2.重写call方法@OverridepublicStringcall()throwsException{//描述线程任务,返回线程执行返回后的结果//需求:求1-n的和返回int sum =0;for(int i =1; i <=n ; i++){
sum += i;}return"线程求出1-"+ n +"的和是:"+ sum;}}