【Java并发编程 基础】1.多线程的概念

什么叫线程

是操作系统中可调度任务最小单位,在JVM中可以一个进程能够运行多个线程分别执行不同的任务

进程和线程的区别

进程是资源分配最小单位
线程是程序执行的最小单位

多线程CPU切换概念

对于如果使用单核cpu服务器,开启多线程的情况下,并不是真正意义上的多线程,因为单核cpu服务器在同一个

时刻最多只能运行一个线程,当正在运行的线程快速切换到另外一个线程执行,这个过程我们可以称之为Cpu切换。

同步和异步

同步:指必须等待全部执行完才能执行后续的行为。
异步:方法调用会理解返回,调用者可以继续后续的操作

串行、并行、并发区别

并发是指一个处理器同时处理多个任务。
并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。

举个例子(这里将人比作CPU):

串行:多个任务一个一个执行
并行:多个任务同时多个人干
并发:多个任务一个人干,但是是交替的干着

线程使用场景

1.客户端开发(移动/APP端)、GUI程序

2.异步发送短信、邮件、写日志

3.耗时长的代码

4.多线程下载

5.网络通讯

6.大部分中间件技术采用多线程

多线程安全三大特性

编写多线程程序下,要保证3大特性:

原子性:一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。

可见性:当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。

有序性:在不影响程序运行结果的情况下,JVM会对程序优化,调整代码的顺序,也叫做指令重排序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

terrybg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值