多线程的初步使用,Thread,Runnable接口

本文详细解析了进程与线程的概念区别,进程是执行程序的一次执行过程,是系统资源分配的基本单位;线程是CPU调度执行的基本单位,一个进程中可包含多个线程。并介绍了两种创建线程的方法:继承Thread类和实现Runnable接口。

进程与线程的区别

  • 说起进程就要说一下程序的概念,程序事是指令和数据的集合,本身并没有运行的含义,是一个静态的概念
  • 而进程就是执行程序的一次执行过程,是一个动态的概念

,是系统资源分配的基本单位。

  • 通常在一个进程中包含多个线程,当然一个进程要有至少一个线程,线程是CPU调度执行的基本单位
  • 注意:很多多线程是模拟出来的,真正的多线程是多个CPU,多核,如服务器,及在同一个CPU,在同一时刻,只能运行一条指令,以为切换的快,感觉是同时进行

Runnable()的作用

  • 可以避免单继承的局限性,灵活方便,

  • 并且方便一个对象被多线程使用

两种创建方法

1.继承Thread

//线程开启不一定直接执行,cpu调度
//创建线程放肆一,继承Thread类,重写run,start开线程
public class TestThread1 extends Thread{
    @Override
    public void run() {
        //run()方法线程体
        for(int i=0;i<20;++i){
            System.out.println("我在看代码----"+i);
        }
    }

    public static void main(String[] args) {
        //main线程,主线程
        //创建一个线程对象
        TestThread1 testThread1 =new TestThread1();

        //调用开启线程
        testThread1.start();

        for(int i=0;i<20;++i){
            System.out.println("我在学习Thread----"+i);
        }
    }
}

部分结果:

我在学习Thread----0
我在看代码----0
我在学习Thread----1
我在看代码----1
我在学习Thread----2
我在看代码----2
我在学习Thread----3
我在看代码----3

注意:主函数得方法顺序是一定的
2.Runnable接口

//Runnable接口
public class TestThread3 implements Runnable{

    @Override
    public void run() {
        //run()方法线程体
        for(int i=0;i<20;++i){
            System.out.println("我在看代码----"+i);
        }
    }

    public static void main(String[] args) {
        //实现乐Runnable接口的实例化对象
        TestThread3 testThread3 = new TestThread3();
        //代理Thread,传入对象
        new Thread(testThread3).start();
        for(int i=0;i<20;++i){
            System.out.println("我在学习Thread----"+i);
        }
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值