我对多线程的理解

我对多线程的理解:


1.在调用多线程的时候,要达到数据共享的目的我们最好不要使用extends关键字覆写Thread类,因为这样我们达不到数据共享的目的.假设我们声明了一个子类 AThread 继承了Thread ,在这个前提下我们只能通过子类从Thread中继承下来的start方法来启动线程,这样就会导致一个问题:每个AThread都会有自己的属性,大家的属性都是互不影响的,这样就达不到对象属性的共享.所以我们只能通过实现Runnable接口去实现这个目的

例如:

class AThread  implements Runnable
{
    private String name;//这里的name就为各个线程所共享,因为这是同一个对象里面的数据
    public void run(){}//此处一定要覆写run()方法
}

2. start方法就算调用了也不代表该线程开始执行!因为主方法所在的主线程也在执行,可能在调用start方法之后由于CPU的调度使主线程继续往下执行而没有执行start的线程,解决方法是在start之前调用try{Thread.sleep(//随便填一个正整数)}catch(InterruptException e){//可以不填}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值