• 进程和线程的关系


    1. 电脑的cpu是核心,它处理所有的计算任务,相当于一个工厂
    2. 假设一个工厂里面只能允许运作一个车间,也就是说单个cpu只能运行一个进程,这时候其他进程处于非运行状态,这时候车间就相当于进程
    3. 但是一个车间里面,可以有很多工人,很多工人协同运行车间里面的东西,这就是多线程协成进程运行任务,一个进程可以有多个线程
    4. 车间有些房间是可以允许多个工人进去的,也就是说,进程的内存是可以共享的,每个线程都可以使用这些共享内存
    5. 有些房间容纳的人多,而厕所只允许一个人进去,也就是说,共享内存时,只允许一个线程的操作,其他线程等待(阻塞)
    6. 防止别人进去测试,用的是加锁,这把锁就是互斥锁(Mutual exclusion,缩写Mutex),防止多个线程同时读取某一块内存地址
    7. 但是也有房间是允许多个人的,也就是说,某些内存区域,只能供给固定数目的线程使用,在门口放几把钥匙,进去一个人拿一把钥匙,这叫做信号量(Semaphore)

    操作系统的设计,因此可以归结为三点:

    (1)以多进程形式,允许多个任务同时运行;

    (2)以多线程形式,允许单个任务分成不同的部分运行;

    (3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

  • 相关阅读:
    Scala window下安装
    HIVE 总结
    mapreduce源码解析以及优化
    Hadoop2.x + eclipse 插件配置
    python spark
    Hive与Hbase关系整合
    Sqoop架构以及应用介绍
    flume
    SOAP
    Leetcode#75 Sort Colors
  • 原文地址:https://www.cnblogs.com/thouger/p/5559845.html
Copyright © 2020-2023  润新知