多线程两种方式对比与区别
Thread:当你连开多条线程,,run(){};里面的代码会各行其事,比如在
int i = 3;
run(){
while(true){
if(i>0)
i--;
system.out.print(i+“,”);
}
};
如果开3条线程,这里每条线程会被执行3次,每条线程都会输出3,2,1,也就是 3,2,1,3,2,1,3,2,1,注意是没有顺序的,有可能是,3,3,2,1,3,2,1,2,1,也有可能是其他,因为线程是没有顺序的,看看谁分的时间片在前就是谁先;从上面看就是各行其事。
Runnable:当你连开多条线程,每条线程会替换着去执行run(){};刚刚和Thread相反;上面的代码,如果开3条线程,这里每条线程说不定会执行几次,3条线程一共输出3,2,1,也就是执行完Run(){}方法里面的条件就结束,注意是没有顺序的,有可能是2,3,1,;
Runnable的运用:一个售票站,有3个窗口,一共有100张票,如果用Thread的话,那每个窗口就会卖100张就是300张,那明显不合理;所以就要用到runnable。