为了账号安全,请及时绑定邮箱和手机立即绑定

线程的实现,以及相关概念的总结

标签:
Java
线程的实现,以及相关概念的总结
  • 实现多线程有以下两种途径:
    1.继承Thread类(功能类,有一个子类就能实现多线程)
    2.实现Runnable接口(Callable接口)

  • 线程:没有进行资源的抢占
package cn.dujiang.demo;

// 线程操作类
class MyThread extends Thread{//这是一个多线程的操作类
    private String name ;  //定义类中的属性
    public MyThread(String name){ //定义构造方法
        this.name = name ;
    }
    @Override
    public void run() {
        //覆写run()方法,作为线程的主体操作方法
        for (int i = 0; i < 200; i++) {
            System.out.println(this.name +" --> "+ i);
        }
     }//本线程的功能是进行循环输出,但没有进行资源的抢占
}
public class TestDemo {
    public static void main(String[] args) {
        MyThread mt1 = new MyThread("线程1");
        MyThread mt2 = new MyThread("线程2");     
        MyThread mt3 = new MyThread("线程3");

        mt1 .run();     
        mt2 .run();
        mt3 .run();
    }
}
 //直接调用run()方法,并不能启用多线程,所以以上代码,并没有启动多线程
  • 线程:交替执行(资源进行抢占)
package cn.dujiang.demo;

// 线程操作类
class MyThread extends Thread{//这是一个多线程的操作类
    private String name ;  //定义类中的属性
    public MyThread(String name){ //定义构造方法
        this.name = name ;
    }
    @Override
    public void run() {
        //覆写run()方法,作为线程的主体操作方法
        for (int i = 0; i < 200; i++) {
            System.out.println(this.name +" --> "+ i);
        }
     }//本线程的功能是进行循环输出,但没有进行资源的抢占
}
public class TestDemo {
    public static void main(String[] args) {
        MyThread mt1 = new MyThread("线程1");
        MyThread mt2 = new MyThread("线程2");     
        MyThread mt3 = new MyThread("线程3");

        mt1 .start();       
        mt2 .start();   
        mt3 .start();   
    }
}
  • 线程:避免单继承的局限性
package cn.dujiang.demo;

// 线程操作类
class MyThread implements Runnable{//这是一个多线程的操作类
    private String name ;  //定义类中的属性
    public MyThread(String name){ //定义构造方法
        this.name = name ;
    }
    @Override
    public void run() {
        //覆写run()方法,作为线程的主体操作方法
        for (int i = 0; i < 200; i++) {
            System.out.println(this.name +" --> "+ i);
        }
     }//本线程的功能是进行循环输出,但没有进行资源的抢占
}
public class TestDemo {
    public static void main(String[] args) {
        MyThread mt1 = new MyThread("线程1");
        MyThread mt2 = new MyThread("线程2");     
        MyThread mt3 = new MyThread("线程3");
        new Thread(mt1).start();
        new Thread(mt2).start();
        new Thread(mt3).start();
    }
}
 //以上避免了单继承局限性

℃江

点击查看更多内容
9人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
58
获赞与收藏
1061

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消