进程线程20200925

1,进程
(1)是正在运行的程序;
(2)是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。
2,线程
(1)是进程中的单个顺序控制流,是一条执行路径
(2)单线程:一个进程如果只有一条执行路径,则称为单线程程序,就比如你正在设置IDEA的一些什么设置,打开了Setting,有窗体出现,你需要去更改。但是你不能在窗体还没有关闭的时候写代码,你只能点击右上角的×,将窗体关闭才能进行接下来的操作,这一次就是单线程。
3,继承方式实现多线程
(1)创建一个类继承自Thread类,并重写run()方法。

public class TestThreadDemo1 extends Thread{
    @Override
    public void run() {
        for(int i=0;i<100;i++){
            System.out.println(i);
        }
    }
}

(2)实例化这个类,调用start()方法,开始多线程。

public class XianchengDemo1 {
    public static void main(String[] args) {
        TestThreadDemo1 t1=new TestThreadDemo1();
        TestThreadDemo1 t2=new TestThreadDemo1();
        t1.start();
        t2.start();
    }
}

4,设置和获取线程名称
(1)如果不设置线程名称,则会有一个默认的线程【Thread-0;Thread-1…】,获取线程名称,用getName()方法
将3.(1)的代码修改为:

public class TestThreadDemo1 extends Thread{
    @Override
    public void run() {
        for(int i=0;i<100;i++){
            System.out.println(getName+":"+i);
        }
    }
}

(2)设置线程名称,在创建对象时使用无参构造,则只需要:

public static void main(String[] args) {
    TestThreadDemo1 t1=new TestThreadDemo1();
    TestThreadDemo1 t2=new TestThreadDemo1();
    t1.setName("A");
    t2.setName("B");
    t1.start();
    t2.start();
}

如果带参构造,则需要在类中的构造方法继承父类Thread:
在类中:

public class TestThreadDemo1 extends Thread{
    public TestThreadDemo1(String name) {
        super(name);
    }

    public TestThreadDemo1() {
    }

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

调用:

public static void main(String[] args) {
    TestThreadDemo1 t1=new TestThreadDemo1("A");
    TestThreadDemo1 t2=new TestThreadDemo1("B");
//        t1.setName("A");
//        t2.setName("B");
    t1.start();
    t2.start();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值