zoukankan      html  css  js  c++  java
  • 廖雪峰Java11多线程编程-1线程的概念-1多线程简介

    1.多任务

    多任务就是同时运行多个任务,例如同时开启钉钉、百度网盘、火狐、谷歌、ps等。
    现代操作系统(windows,MacOS,Linux)都可以执行多任务:操作系统执行多任务就是让多个任务交替执行,例如浏览器执行0.001秒,网盘执行0.001秒,钉钉执行0.001秒。因为任务的数量远远多余CPU的数量,因此任务也是交替执行的

    2.进程、线程

    进程(Process):一个任务就是一个进程l,如word是一个进程,钉钉是一个进程,qq也是一个进程。
    线程(Thread):某些进程内部还需要同时执行多个子任务。例如word打字、拼写检查、打印等。我们把子任务称为线程。

    2.1 进程和线程的关系:

    • 一个进程可以包含一个或多个线程(至少一个线程)
    • 线程是操作系统调度的最小任务单位
    • 如何调度线程完全由操作系统决定(程序不能决定什么时候执行,以及执行多长时间)

    2.2 实现多任务的方法:

    • 多进程模式(每个进程只有一个线程)
    • 多线程模式(一个进程有多个线程)
    • 多进程+多线程模式(复杂度最高,一般不考虑)

    2.3 进程和线程各自的优势

    • 创建进程比创建线程开销大(尤其是Windows系统)
    • 进程间通信比线程间通信慢
    • 多进程稳定性比多线程高
      * 多进程:一个进程崩溃不会影响其他的进程
      * 多线程:任何一个线程的崩溃会导致整个进程的崩溃

    3.Java语言内置多线程支持:

    • 一个Java程序实际上是一个JVM进程
    • JVM用一个主线程来执行main()方法
    • 在main()方法中又可以启动多个线程

    3.1 多线程编程的特点:

    • 多线程需要读写共享数据
    • 多线程经常需要同步。例如看电影,必须由一个线程播放视频,一个线程播放音频。2个线程需要协调运行。否则视频和音频会不同步。
    • 多线程编程的复杂度高,调试更困难

    3.2 Java多线程编程的特点:

    • 多线程模型是Java程序最基本的并发模型
    • 网络、数据库、web等都是依赖多线程模型
    • 必须掌握Java多线程编程才能继续深入学习
  • 相关阅读:
    【Codeforces Round #645 (Div. 2) A】 Park Lighting
    【Codeforces Round #636 (Div. 3) D】Constant Palindrome Sum
    【Codeforces Round #628 (Div. 2) D】Ehab the Xorcist
    【Codeforces Round #642 (Div. 3)】Constructing the Array
    【LeetCode 85】最大矩形(第二遍)
    scrum例会报告+燃尽图02
    scrum例会报告+燃尽图01
    版本控制报告
    Scrum立会报告+燃尽图 07
    Scrum立会报告+燃尽图 05
  • 原文地址:https://www.cnblogs.com/csj2018/p/10909511.html
Copyright © 2011-2022 走看看