多线程两种方式对比与区别

  Thread:当你一个线程建几个实例,它们是各行其是相互没有接触的(run(){};里面的代码会各行其事),线程执行不是按顺序执行的,谁获得线程时间片段谁就先处理,可以看看图三

图1

 

 图2

结果

图3

 

 

 

  Runnable:当你连开多条线程,每条线程会替换着去执行run(){};刚刚和Thread相反;上面的代码,如果开3条线程,这里每条线程说不定会执行几次,3条线程一共输出3,2,1,也就是执行完Run(){}方法里面的条件就结束,注意是没有顺序的,有可能是2,3,1,;

  Runnable的运用:一个售票站,有3个窗口,一共有100张票,如果用Thread的话,那每个窗口就会卖100张就是300张,那明显不合理;所以就要用到runnable。

实现Runnable

 

 

 

结果

 看到结果就知道实现Runnable ,无论开多少线程去执行代码,数据都是共享的

,数据都是共享的,里面的所有变量参数,全局的和非全局的数据都是共享的

 就是说无论开多少条线程,runnable中的代码都是共享的

这个在实际用途中,比如卖票,有10台卖票机,客人买票,里面的数据都是同步的(比如票数等),每台机器买票都开一条线程,如果不同步的话票数就乱了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值