Java-多线程概述

1.要想了解多线程,必须先了解线程,而要了解线程,需要先了解进程,因为线程是依赖于进程而存在
2.什么是进程?
通过任务管理器我们看到了进程的存在
只有运行的程序才会出现进程
进程是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。
3.多进程的意义
单进程的计算机只能做一件事情,
多进程的计算机就可以同时做多件事情(玩游戏、听音乐、看电影同时进行),在一段时间内执行多个任务。

问题:
一边玩游戏,一边听音乐是同时进行 吗?
不是,因为单CPU在某一个时间点上只能做一件事,是CPU在做着程序间的高效切换让我们觉得是同时进行的
4.什么是线程呢?
在一个进程内又可以执行多个任务,而这每一个任务我就可以看成是一个线程。
线程:是程序的执行单元,执行路径。是程序使用CPU的最基本单位
单线程:一个进程只有一条执行路径
多线程:一个进程有多条执行路径
5.多线程有什么意义?
多线程的存在,不是提高程序的执行速度,而是为了提高应用程序的使用率。
程序的执行其实都是在抢CPU的资源,CPU的执行权。
多个进程是在抢这个资源,而某一个进程的线程较多,就会有更高的几率抢到川普的执行权。
线程的执行有随机性。
6.并行和并发
并行:逻辑上同时发生,指在某一个时间内同时运行多个程序。
并发:物理上同时发生,指在某一个时间点同时运行多个程序。
7.Java程序运行原理:
7.1.由Java命令启动jvm,相当于启动了一个进程。接着由该进程创建了一个主线程去调用main方法。
7.2.思考题:
jvm虚拟机的启动时单线程的还是多线程的?
是多线程,原因是垃圾回收线程也要先启动,否则很容易出现内存溢出。
8.多线程实现方式
8.1 继承Thread类
A: 自定义类继承Thread类,
B: 重写run()方法,
因为不是类中的所有方法都要被多线程执行,Java提供了Thread类中的run()方法来包含哪些被线程执行的代码
C:创建对象,
D: 启动线程

9.run()与start()的区别
run()只是封装被线程执行的代码,直接调用就是普通方法
start()首先启动了线程,然后再由jvm调用该线程的run()方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值