//2、 使用3种不同的方式创建线程//接口方式publicclass zuoye02 implementsRunnable{@Overridepublicvoidrun(){for(int i =0; i <10; i++){System.out.println(i);}}}publicclass zuoye2 {publicstaticvoidmain(String[] args){//创建该类对象,并通过该类对象来调用Thread类型的对象
zuoye02 z1 =newzuoye02();Thread t1 =newThread(z1,"t1");
t1.start();}}
//继承方式publicclass zuoye03 extendsThread{@Overridepublicvoidrun(){for(int i =0; i <10; i++){System.out.println(i);}}}publicclass zuoye2 {publicstaticvoidmain(String[] args){//创建该类的对象调用start方法。
zuoye03 z1=newzuoye03();
z1.start();}}
publicclass zuoye2 {publicstaticvoidmain(String[] args){newThread(newRunnable(){@Overridepublicvoidrun(){for(int i =0; i <10; i++){System.out.println(i);}}}).start();}}
3、 测试3种不同线程池,体会下区别
publicstaticvoidmain(String[] args){//一个线程池,随便进,进来就有线程,有空闲就空闲没空闲就创建// ExecutorService executorService= Executors.newCachedThreadPool();//单个 一个一个来// ExecutorService executorService=Executors.newSingleThreadExecutor();// 固定几个线程,空闲则运行 否则就等待ExecutorService executorService=Executors.newFixedThreadPool(3);for(int i =0; i <10; i++){finalint index=i;
executorService.execute(newRunnable(){@Overridepublicvoidrun(){System.out.println(Thread.currentThread().getName()+":"+index);}});}}}
new新建时还未执行--新建状态
调用start方法,但还未执行,等待分配时间片--就绪状态
执行中---执行状态
当时间片用完,任务还未执行完毕则进入就绪状态
任务执行完毕- 消亡状态
d