多线程

多线程

线程与进程的概念
进程:
a. 是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

线程: 就是进程中的一部分 .

理解:
cpu=大工厂 进程=子工厂 线程=小工厂中员工
cpu 是一个大工厂,时刻在运行,有很多的小工厂,由于各种原因,导致一次只能一个小工厂在运转,—>Cpu任意时刻,只有一个进程在运行
每个小工厂中都有至少一个员工,–>一个进程至少有一个线程
每个小工厂有会有车间, 车间是工人共享的–>每一个进程都有一个自己的进程空间(虚空间),进程的内存空间是共享的
车间有些地方可以容纳多人(餐些地方至多只能容纳一个(厕所)


创建线程的两种方式

  1. 继承Thread类

            a.继承Thread类
            b.重写run()
            c.创建对象,调用start()
    
package com.lvliang.thread;

public class ThreadDemo {

    public static void main(String[] args) {
        Demo d = new Demo();
        Demo d1 = new Demo();
        //2个线程 每个都有自己的执行任务
        d.start();
        d1.start();
    }

}
class Demo extends Thread {
    public void run(){
        for(int i = 0; i < 10; i++){
            System.out.println(Thread.currentThread().getName()+"..."+i);
        }
    }
}

2.实现Runnable接口
aaa

避免了单继承的局限性,比如:
class Demo extends Person. 这样就无法继承Thread类 ,但是又想多线程,参考API发现
p

a.implements Runnable
b.重写run()
c.创建对象
    Thread t = new Thread(runnable);
    t.start();
package com.lvliang.thread;

public class Thread_Implements_Runnable {

    public static void main(String[] args) {
        Demo1 d = new Demo1();
        Thread t = new Thread(d);
        Thread t2 = new Thread(d);

        t.start();
        t2.start();
    }

}
class Demo1 implements Runnable {

    @Override
    public void run() {
        for(int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName()+"..."+i);
        }
    }

}

两种创建线程的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值