java复习第十五天[多线程一]

java复习第十五天[多线程一],第1张

java复习第十五天[多线程一] 什么是多线程

        简介: 多线程是java语言的重要特性,大量应用于网络编程,服务器端程序的开发,
最常见的UI界面的底层原理, *** 作系统的底层原理都大量使用了多线程.

多线程的三个概念

程序(Program):是一个静态的概念,一般对应于 *** 作系统中的一个可执行的文件
,比如:我们要启动酷狗听音乐,则对应酷狗可执行程序。当我们双击酷狗,则加载
程序到内存中,开始执行该程序,于是产生了"进程".

进程:执行中的程序叫做进程(Process),是一个动态的概念。现代的 *** 作系统都可以同时启动多个进程。比如:我们在用酷狗听音乐,也可以使用wps写文档,也可以同时用浏览器查看网页。可以通过任务管理器查看当前的进程.

线程:是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。

注意事项

一个进程可拥有多个线程一个进程中的多个线程共享相同的内存单元/内存地址空间,可以访问相同的变量和对象,而且他们从同一堆中分配对象并进行通信,数据交换和同步 *** 作。线程的启动,中断,消亡,消耗的资源非常少。每个java程序都有一个主线程:main thread(对应main方法启动)。线程的执行是由cpu进行调度的,可以设置优先级,不能设置先后执行顺序 实现线程的三种方式

实现线程的三种方式:

    继承Thread类实现Runnable接口(作者推荐使用)实现Callable接口
继承Thread类 
public class Tang2 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("正在执行多线程"+i);
        }
    }

    public static void main(String[] args) {
        Tang2 tang =new Tang2();
        tang.start();
        
        for (int i = 0; i < 1000; i++) {
            System.out.println("正在学习多线程"+i);
        }
    }
}

此代码执行会发现两个循环是一起执行的不会在等待run方法执行玩之后在去执行main后面的代码

当线程执行时会运行run()方法里的代码.

实现Runnable接口
public class Tang2 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("正在执行多线程"+i);
        }
    }

    public static void main(String[] args) {
        Tang2 tang =new Tang2();
        new Thread(tang).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("正在学习多线程"+i);
        }
    }
}

这里可以看到不管是实现接口还是继承子类,都要去调用start方法去启动线程.

实现Callable接口

这个实现作者也还没搞会,可以去查看:

java复习第十六天[多线程二]_abc98526的博客-CSDN博客



 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5719507.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存