首页 > 编程语言 > 详细

Java 多线程基础

时间:2020-03-10 09:57:55      阅读:44      评论:0      收藏:0      [点我收藏+]

P1 多线程概述

学习路线:

  • 线程简介
  • 线程实现(重点)
  • 线程状态
  • 线程同步(重点)
  • 线程通信问题
  • 高级主题

线程、进程、多线程

核心概念:

  • 多任务:看起来多任务,其实同一时间,其实依旧只在做一件事
  • 多线程:多个方法同时执行;

技术分享图片

  • 进程:一个程序开启一个进程,一个进程包含多个线程;
  • main() 称为主线程,为系统的入口,用于执行整个程序;
  • 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;
  • 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致;

Process(进程)与Thread(线程):

  • 程序:是一个静态概念,包含指令和数据的有序集合。
  • 进程:程序执行的一次过程,是一个动态概念。进程是系统资源分配的单位。
  • 线程:字啊一个进程中,通常包含若干线程,一个进程至少有一个线程。线程是CPU调度和执行的单位。

注意:很多多线程是模拟出来的,真正的多线程是指多个CPU即多核。如果是模拟出来的多线程,在一个CPU的情况下,在同一个时间点上,CPU只能执行一个代码,因为切换的很快,才有同时执行的错觉。

P3 线程创建

Thread、Ruunnable、Callable:

  • 继承 Thread 类,重点
  • 实现 Runnable 接口,重点
  • 实现 Callable 接口,了解

P3 Thread

  • 自定义线程类,继承Thread类;
  • 重写 run() 方法,编写线程执行体;
  • 创建线程对象,调用该对象的start()方法启动线程;注意,不是调用 run() 方法!

注意点:

  • start() 方法启动多线程,线程不一定立即执行,CPU 安排调度;

P4 Runnable

  • 自定义线程类,实现 Runnable 接口;
  • 实现 run() 方法,编写线程执行体;
  • 创建线程对象,调用 start() 方法启动线程;

推荐使用 Runnable 对象,因为 Java 单继承的局限性!

Java 多线程基础

原文:https://www.cnblogs.com/michael-xiang/p/12453784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!