多线程的基本概念和几种同步方式

多线程的概念:  

      回顾一下进程。一个进程在某一时刻只能处理一个事情,比如播放音乐,所以一个进程其实可以看成只有一个控制线程。但是单一的进程很难满足实际的业务需求,如服务器可能同时需要响应几千上万个用户的访问,如果都是进程来处理,那计算机就会很卡,这时候线程就粉墨登场了,面对多个用户同时访问的情况,首先要做到计算机的性能足够好,其次计算机需要开辟对应数量的线程用于处理响应,如果做不到服务器就极有可能崩溃,比如曾经春运期间的购票网站,以及NBA球员季后赛时投进绝杀球导致某论坛崩溃。这时候就涉及到多线程设计的问题。

      在一个进程里,可以并发出多个线程,每条线程都可以执行不同的任务。当然所谓的并发其实只是肉眼所见的同时进行,实际是CPU(中央处理器)在任务调度,进行任务切换,用白话说就是这1ms在处理a线程的任务,下一个1ms就去处理b线程的事情,然后到c线程,最后又回到a线程。只是时间间隔特别短,让用户觉得是同时进行的。这时候CPU就相当于一个大脑,如果我们一边看书,一边玩游戏,大脑就会转不过来。所以,多核CPU就诞生了,不过经常会出现比如一核处理,多核围观的情况。所以多线程的就更加重要了。

在这里说一下我对并发和并行的理解:

并发,即系统轮流做不同的事情。比如,一个机器在1秒内,可以在唱歌、跳舞、背诗词...等事情中来回切换交替’进行,强调“同一时间间隔内”。

并行,就是系统同时做不同的事情。打个比方就是,人一边看书,一边哼歌,强调“同一时刻”。

线程的几种同步方式:

  所谓线程同步,就是当一个线程在操作某块内存的的时候,其余的线程不能操作该地址,等到该线程完成操作以后,其他线程才能通过竞争的方式操作该内存。剩下的线程会继续等待,直到该线程操作完毕。

1)互斥锁

2)条件变量

3)信号量

4)临界区

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值