多线程---进程和线程、线程初体验、继承Thread创建线程、实现Runnable创建线程

本文详细介绍了进程与线程的概念,包括两者的区别与联系,以及如何在Java中通过继承Thread类或实现Runnable接口来创建和启动线程,旨在帮助读者深入理解多线程编程的基础。

进程:

应用程序的执行实例

有独立的内存空间和系统资源

线程:

CPU调度和分派的基本单位

执行运算的最小单位,可完成一个独立的控制流程 

多线程:

如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为"多线程”

多个线程交替占用CPU资源,而非真正的并行执行

多线程好处:

充分利用CPU的资源,提高代码性能

简化编辑模型,更好的软件设计和架构

带来良好的用户体验

主线程:

main()方法即为主线程入口

产生其他子线程的线程

必须最后完成执行,因为它执行各种关闭操作

线程初体验

 * @Description获取和设置主线程(名称)
 */
public class MainThread {
    public static void main(String[] args) {
        //获取当前的线程对象
        Thread thread = Thread.currentThread();
        //获取当前线程对象的名称
        String name = thread.getName();
        System.out.println("当前线程时:"+name);
        //为当前线程重新设置名称
        thread.setName("myThread");
        name=thread.getName();
        System.out.println("当前线程是:"+name);
    }
}

继承Thread创建线程:

定义MyThread类继承Thread类

重写run()方法,编写线程执行体

创建线程对象,调用start()方法启动线程

 * @Description创建并启动线程
 */
public class MyThread extends Thread{
    public void run(){
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread()+getName()+":"+i);
        }
    }
    //测试类
    public static void main(String[] args) {
        //创建线程对象
        MyThread myThread=new MyThread();
        MyThread myThread2=new MyThread();
        //启动线程
        myThread.start();
        myThread2.start();
        //是否可以调用run()启动线程?----不可以
        //(1)只有主线程一个执行路径(2)依次调用了两次run()方法
        //run()方法被当作main()中的一个普通方法,失去了线程的意义
        myThread.start();
        myThread2.start();
    }
}

定义MyRunnable类实现Runnable接口

实现run()方法,编写线程执行体

创建线程对象,调用start()方法启动线程

  Thread(Runnable target)

  Thread(Runnable target,String name)

 * @Description//创建线程:实现Runnable接口
 */
public class MyThread2 implements Runnable{
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName() + ":" + i);
        }
    }

    public static void main(String[] args) {
        //创建线程对象
        Runnable runnable=new MyThread2();
        //Thread thread=new Thread(runnable)
        Thread thread=new Thread(runnable,"mythread1");
        Thread thread2=new Thread(runnable,"mythread2");
        //启动线程
        thread.start();
        thread2.start();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值