并发编程01_多线程基础

本文介绍了并发编程的基础概念,包括进程、线程和CPU调度。讲解了Java中多线程的创建方式,对比了Thread和Runnable的区别,并详细阐述了线程状态流转、常用方法以及线程的优先级和守护线程。还讨论了Synchronized内置锁在并发控制中的作用。
摘要由CSDN通过智能技术生成

基础概念:

什么是进程:

        CPU中操作资源的最小单位是进程 ,在我们每启动一个程序,就相当于启动了一个进程,

什么是线程

        CPU调度的最小单位,线程必须依赖于进程存在,在一个进程中可以拥有多个线程,这些线程共享进程的数据。

线程数和CPU核心数的关系:

一个处理器核心同时只能执行一个线程 。核心数越多,同时执行的线程就越多

为什么系统要限制线程数:

因为每创建一个线程都需要分配内存资源。线程太多会浪费内存资源。Linux系统最多开1000个线程数,Windows系统最多开2000个线程数。我们可以用线程池来解决线程需求过多的情况。

RR调度:

也叫CPU时间片轮转,因为CPU执行一条指令非常的快,一毫秒就可以执行数十万的指令,所以CPU将时间进行切片,CPU执行一个进程时可以轮转到别的进程,因为执行速度太快,给人的感觉就像是这些进程在同时进行一般。 

并发,并行,串行:

并发:指在一个时间段内执行了多个任务,但是同一时刻只有一个任务在进行,重点是一段时间内。举例A在吃饭,吃饭中途来了个电话,你暂停了吃饭的动作去接电话,接完电话你继续吃饭。

并行:指在同一个时间点执行了多个任务,重点是同一时刻。 举例B在吃饭,吃饭途中也来了个电话,B没有暂停吃饭的动作,而是一遍接电话一遍吃饭,两个动作同时进行着。

并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作 

串行:指任务必须按照顺序来执行,一个任务结束才能进行下一个任务。举例做饭,你先烧水,锅中加水30秒,水烧开需要5分钟,而你却要等着水烧开了再去煮米饭,煮米饭需要15分钟,又要等待米饭煮熟再去做后面的流程。 (并发就像是同步的串行,锅里加完水不在等待水开,而是立刻去洗菜,切肉,煮米饭。不在等待任务执行完成,而是在这一段时间完成多个任务。)

高并发编程的好处:模块化,异步化,简单化

举例: 酒店后厨收到订单开始每一盘菜都洗菜,择菜,切菜切肉,最后炒菜。如果是串行来走的&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值