zoukankan      html  css  js  c++  java
  • 【JAVA SE基础篇】54.多线程介绍和创建

    1.多线程学习内容

    1.线程简介

    2.线程实现

    3.线程状态

    4.线程同步

    5.生产消费者

    6.高级主题

    2.线程简介

    多线程是指多条并行路径,多路路径同时执行

    方法间的调用:普通方法调用是闭合一条路径

    多线程使用:开辟了多条路径

    程序、进程和线程都是什么?

    1.程序:一个软件,一个app(静态概念,是代码指令)

    2.进程:在操作系统中运行中的程序(动态概念,一个进程匹配一个程序),例如:用优酷看视频,就是系统中的一个进程

    3.线程:一个进程有多个线程,例如:用优酷看视频,同时有图像,有声音,有弹幕,有字幕

    线程和进程的区分

    1.进程:作为资源分配单位

    2.线程:调度和执行单位

    核心概念

    1.线程就是独立的执行路径

    2.在程序运行时,即使没有自己创建线程,后台也会存在多个线程,如:gc线程,主线程

    3.main()为主线程,为系统的入口点,用于执行整个程序

    4.在一个进程中,如果开辟多个线程,线程运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序不能人为改变

    5.对于用一份资源操作时,会存在资源抢夺的问题,需要加入并发控制

    6.线程会带来额外的开销,如cpu调度时间,并发控制开销

    7.每个线程在自己的工作内存交互,加载和储存主内存控制不当会造成数据不一致

    4.线程的创建

    三种方式创建线程

    1.继承Thread类

    2.实现Runable接口

    3.实现Callable接口(并发相关)

    根据面向对象思想,多用实现,少用继承,以便达到多继承功能

    例:

    注:

    1.执行线程时必须调用start(),加入到调度器中

    2.不一定立即执行,系统安排调度分配执行

    3.直接调用run(),不是开启多线程,是普通方法调用

    例:通过线程,同时下载三个图片

    1.下载图片工具类

    2.通过线程调用三张图片

    避免单继承的局限常用接口来实现多线程,还可以方便共享资源

    注:

    对比Thread和Runnable

    Thread 启动线程:子类对象.start()

    Runnable 启动线程:传入目标对象+Thread对象.start()

    使用Callable接口创建多线程

  • 相关阅读:
    iOS 项目中的NSNotification简单使用
    IOS开发之格式化日期时间的使用 && 编程中常见问题
    linker command failed with exit code 1 (use -v to see invocation),经典Xcode编译错误的出现和解决!
    CocoaPods安装和使用教程
    机器学习算法--贝叶斯分类器(二)
    机器学习算法--贝叶斯分类器(一)
    Linux系统初始化过程及运行级别简介
    Linux基本符号
    索引节点inode详解
    Linux文件类型介绍
  • 原文地址:https://www.cnblogs.com/chengkuan/p/13294588.html
Copyright © 2011-2022 走看看