栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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博客



 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号