Java多线程基础01:线程简介

线程(thread)

多线程:是任何一门语言的重要特性,在Java语言中更是有很重要的地位,大量应用于网络编程、服务器端程序开发。多线程无处不在,小到程序开发,大到操作系统原理,都存在多线程的应用

思考:一条路就要排队、等待,有了多条路径性能就提高了,就可以同时执行多任务操作

目前互联网三高代表:

高可用:数据不能出错

高性能:用户体验要好,等待时效不能太久

高并发:多人同时操作,有竞争的情况存在

*简单了解关键词:JUC并发编程

什么是多任务:现实中有很多同时进行的的例子,比如下图(1、开车+打电话+挂点滴;2、看手机+吃饭)。看似是多任务,其实在一个时间点我们的大脑还是只做了一件事情

例如:A(学习)、B(玩游戏)、C(吃饭)是最小时间点,当A、B、C时间点在几秒内时间内切换,就好像在同步做事情(一边学习、一边玩游戏、一边吃饭)

CPU也是如此,单核CPU在同一个单元时间内只能做一件事情,多核CPU在同一个单元时间内做同核数的事情

什么是多线程:

例如:三个电器同时连接到220V的电线上,当总开关打开,三个电器就可以同时工作

方法间调用与多线程使用区别

方法间调用:普通方法调用,从哪里来到哪里去,闭合的一条路径

多线程使用:开辟了多条路径,main方法开启线程后,继续执行main方法程序,不关心、不等待新开线程程序执行如何

程序、进程和线程之间的关系:

比如QQ应用:编写QQ应用的代码就是程序;在操作系统中开始运行QQ应用程序就是一个进程;QQ应用中可以聊天、音视频等操作都是线程(一个进程中可包含多个线程)

程序是一个静态的概念,代码的指令;进程是CPU调度到程序的动态概念,一个程序对应一个进程;线程是指在一个进程中开辟多条路径执行

注:多线程都是模拟出来的,真正的多线程是指多个CPU,即多核,比如服务器。如果是模拟出来的多线程,即一个CPU的情况下,在同一个时间点,CPU只能执行一段代码,因为切换的很快,所以就有同时执行的错觉

java多线程核心概念总结:

  1. 线程就是独立的执行路径
  2. 在程序运行时,即使没有创建线程,后台也会存在多个线程,如:gc线程、主线程
  3. main()称之为主线程,为系统的入口点,用于执行整个程序
  4. 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为干预的
  5. 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制
  6. 线程会带来额外的开销,如CPU调度时间,并发控制开销
  7. 每个线程是和自己的工作内存中数据间交互,当加载和存储主内存数据控制不当时,会造成数据不一致

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值