美文网首页
进程和线程的概念

进程和线程的概念

作者: 简通 | 来源:发表于2023-09-19 21:34 被阅读0次

1. 什么是进程和线程?

进程和线程是操作系统中用于执行任务的基本单位。

  • 进程(Process)是指在计算机中运行的程序的实例。每个进程都有自己的地址空间、内存、文件描述符等资源。
  • 线程(Thread)是进程中的一个执行单元,一个进程可以包含多个线程。线程共享进程的资源,包括内存、文件等。

2. 单核CPU实现任务的原理

在单核CPU上,只能同时执行一个任务。操作系统通过时间片轮转的方式,将CPU的执行时间划分为多个时间片段,每个任务在一个时间片段内执行一段时间,然后切换到下一个任务。这样,多个任务在CPU上交替执行,给用户的感觉是同时执行。

3. 多核CPU实现任务的原理

多核CPU可以同时执行多个任务,每个核心可以独立执行一个任务。操作系统会将多个任务分配给不同的核心,使得多个任务可以并行执行,提高了系统的处理能力。

4. 并发与并行的概念介绍

  • 并发(Concurrency)是指多个任务交替执行的过程,多个任务之间可能是串行执行的,也可能是并行执行的。并发可以提高系统的吞吐量和响应性。
  • 并行(Parallelism)是指多个任务同时执行的过程,多个任务在不同的处理器上同时执行,真正实现了同时执行。

5 案例举例.

当在Python中创建多个进程时,每个进程都有自己独立的内存空间,因此进程中的全局变量是不共享的。为了演示这一点,我们可以使用multiprocessing模块来创建多个进程,并在每个进程中修改全局变量的值。

import multiprocessing

# 全局变量
global_var = 0

def process_func():
    global global_var
    global_var += 1
    print(f"进程ID: {multiprocessing.current_process().pid},全局变量值: {global_var}")

if __name__ == "__main__":
    # 创建两个进程
    process1 = multiprocessing.Process(target=process_func)
    process2 = multiprocessing.Process(target=process_func)

    # 启动进程
    process1.start()
    process2.start()

    # 等待进程结束
    process1.join()
    process2.join()

    print(f"最终全局变量值: {global_var}")

在上面的代码中,我们创建了两个进程process1process2,它们都会执行process_func函数。在process_func函数中,我们通过global关键字将global_var声明为全局变量,并在每个进程中对其进行自增操作。然后,我们打印出每个进程的ID和全局变量的值。

运行上述代码,你会发现每个进程中的全局变量值是独立的,它们不会相互影响。这是因为每个进程都有自己独立的内存空间,对全局变量的修改只会影响当前进程的内存,不会影响其他进程。

最后,我们打印出最终的全局变量值,你会发现它仍然是0,这是因为全局变量在每个进程中都是独立的,它们不会被其他进程的修改所影响。

总结起来,进程中的全局变量是不共享的,每个进程都有自己独立的内存空间。如果需要在多个进程之间共享数据,可以使用multiprocessing模块提供的共享内存或进程间通信机制。

相关文章

  • OC-底层原理 23:多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程...

  • iOS 多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程 和 进程 线程和进程的定义 线程 线程时进程...

  • iOS底层原理24:多线程原理

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 线程和进程 线程和进程的定义 线程 线程是进程的基...

  • 1 多线程基础和Sync

    目录 进程、线程概念 创建线程的方法 线程常用方法 线程同步:Sync 1 进程线程概念 1.1 进程 进程指的是...

  • iOS-底层原理23:多线程

    本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理 1 线程 和 进程 1.1 线程 和 进程的定义 ...

  • 多线程

    线程和进程的概念: 进程:正在运行的应用就是一个进程线程:进程中执行每个任务的是线程 进程和线程的关系: 一个进程...

  • 1.多线程基础(一)基础中基础

    1.前言 进程,线程和任务的基本概念的概括图 进程: 线程: 线程的串行: 线程和进程的区别: 多线程的优缺点: ...

  • 进程和线程

    一、线程和进程的概念、并行和并发的概念 进程和线程进程:1)进程是程序的一次执行。2)进程是具有独立功能的程序在一...

  • 面试题_ios(四)

    1.进程和线程的区别和联系 Progress和Thread,进程和线程是操作系统里的基本概念线程与进程的区别:线程...

  • 多线程 以及 线程安全

    移动端开发过程中,会出现 进程 和 线程的概念,以及多线程中 线程安全 的问题。 进程 和 线程 进程: APP...

网友评论

      本文标题:进程和线程的概念

      本文链接:https://www.haomeiwen.com/subject/qypmvdtx.html