线程与进程的用法与区别

进程与线程的区别 进程与线程的区别 进程是资源分配的基本单位,线程是调度的基本单位。进程包含线程,线程共用进程的资源。 1 进程定义及基本概念 1.1 进程的组成 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈区域(stack region)。 文本区域存储处理器执行的代码; 数据区域存储变量和进程执行期间使用... 阅读详情

几乎所有语言在学习的过程中,都会碰到线程和进程的问题,也应该是大部分“程序员”学习后最容易忘记的内容内容,那么他们之间到底有什么不同呢?

1、进程和线程的定义

进程是一个术语,用来描述一组资源和程序所需的内存分配,也就是各种资源的集合、一个程序执行的实例。进程之间独立享用资源。

线程是一堆指令的集合,操作系统调用CPU的最小单位,他是比进程更小的能独立运行的基本单位。所有线程之间共享资源,系统创建好进程后,实际就启动执行了该进程的主线程,主线程终止了,进程也就随之终止,每一个进程至少有一个线程。

2、进程与线程的区别:

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。

1) 第一,一个程序至少有一个进程,一个进程至少有一个线程.

2) 线程的划分尺度小于进程,因此多线程程序的并发性高。

3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。

3、用法

线程案例:

import threading
import time
#线程锁
lock = threading.Lock()

#  我定义的线程类
class MyThread(threading.Thread):

    def __init__(self,num):
        threading.Thread.__init__(self)
        self.num = num

    def run(self):
        # lock.acquire()
        print("Thread--"+self.num,end='\n')
        time.sleep(2)
        # lock.release()


thread_lists =[]
for i in range(100):
    t = MyThread("t"+str(i))
    t.setDaemon(True)   # 设置守护线程
    t.start()
    # t.run()
    thread_lists.append(t)

for t in thread_lists:
    t.join()
    
t1 = MyThread("t1")
t2 = MyThread("t2")

t1.run()
t2.run()

进程案例:

import multiprocessing
import time


def run(n):
    print("进程%s"% str(n))
    time.sleep(1)


if __name__ == "__main__":

    for i in range(10):
        p = multiprocessing.Process(target=run,args=(i,)) #创建多进程
        p.start() #启动多进程
Transformer论文解读 Transformer有多牛逼不用多说,时隔7年我们再来看看论文原文,看看这篇深刻改变世界的文章都说了什么。当然逐字逐句解读已经意义不大,我们只列考点。 阅读详情

相关推荐

从虚拟机到双系统:手把手教你为Gromacs搭建最强Linux环境(含WSL2、Ubuntu22.04配置)

本文详细指导如何在Windows系统下为Gromacs分子动力学模拟搭建高性能Linux环境,涵盖WSL2和Ubuntu22.04双系统配置。通过对比虚拟机、WSL2和原生Linux的性能数据,提供GPU加速、内存优化等实用技巧,帮助科研人员提升计算效率。

weixin_30861797的博客 269

操作系统基础--进程与线程的本质区别、以及各自的使用场景

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、进程与线程的比较。二、使用步骤1.引入库2.读入数据总结 一、进程与线程的比较。 1)调度。在传统操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换。 2)拥有资源。不论是传统操作系统还是设有线程的操作系统,进程都是拥有资源

weixin_48475611的博客 1980

碎碎念android eMMC【转】

本文转载自:https://blog.youkuaiyun.com/Fybon/article/details/44242549 一、/dev/blockroot@:/dev/block #lsbootdevicemmcblk0mmcblk0p1mmcblk0p10…….mmcblk0p18mmcblk0p19mmcblk0p2mmcblk0p20……mmcblk0p29mmcblk0p3mmcblk0p3...

zzb2760715357的博客 377

线程与进程使用详解

1.多线程 并发:指两个或多个事件在同一个时间段里发生 并行:指两个或多个事件在同一个时刻(同时发生)里发生 进程:是指一个内存中运行的内存程序,每个进程都有独立的内存空间,一个应用程序可以同时运行多个进程,进程也是程序的一次执行过程,是系统运行程序的基本单位,系统运行程序既是一个进程从创建,运行到消亡的过程。 简单来说,点击一个程序执行,进入到内存,占用一些内存来执行,这个进入内存的程序叫进程。 线程:是进程的执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中也可以有多个线程,这个应

weixin_45461033的博客 1386

喷雾破碎模型解析:从理论到CFD应用实践

本文深入解析喷雾破碎模型的理论基础与CFD应用实践,重点介绍KHRT、TAB和ETAB等主流模型的核心原理与工程调参技巧。通过OpenFOAM实例演示和参数优化建议,帮助工程师精准预测液滴破碎行为,提升燃烧效率与排放控制性能,适用于汽车发动机、燃气轮机等工业场景。

weixin_29281915的博客 498

spring boot 集成cas(一) 服务端搭建

简单点就是统一服务认证,多个系统一次登录。俗称单点登录。

慕孑晨的博客 1956

线程

在传统操作系统中,每个进程有一个地址空间和一个控制线程,这是进程的定义,经常存在在一个地址空间中准并行运行多个控制线程的情形,这些线程像分离的进程。

漠影的博客 4010

从压电传感器到示波器:手把手教你用CA3140搭建电荷放大器(含PCB布局与调零技巧)

本文详细介绍了如何使用CA3140运算放大器搭建专业级电荷放大器,从压电传感器信号特性分析到PCB布局与调零技巧,全程实战演示。重点解析了CA3140的低通滤波器设计、反馈网络参数计算及抗干扰增强方案,帮助电子爱好者高效实现微弱电荷信号的稳定转换与测量。

weixin_31355483的博客 597

进程和线程的区别,以及应用场景

什么是线程? Linux下线程用进程PCB模拟描述,也叫轻量级进程 线程是进程内部的一个执行流,也就是线程在进程的地址空间内运行。 一个进程内的所有线程共享进程资源 线程是CPU调度的基本单位(CPU调度是按照PCB进行调度的) 创建,销毁一个线程相较创建,销毁一个进程成本要低(创建进程要创建PCB,虚拟地址空间,创建页表,维护映射,把硬盘的代码数据加载到内存,文件描述符等等,而创建线程...

baidu_37964044的博客 7472

从玩具车到手机充电:手把手带你用Multisim仿真Buck/Boost电路(附工程文件)

本文通过Multisim仿真软件,手把手教你搭建Buck降压电路和Boost升压电路,实现从12V到5V或3.7V到5V的电压转换。文章详细介绍了电路搭建步骤、关键波形观测技巧及常见故障排查方法,并附赠工程文件,帮助电子爱好者快速掌握电源转换技术。

weixin_29159127的博客 242

[QMT和ptrade量化交易小白入门]-109、小市值选股的基础上用六脉神剑评分,回测年化可到132%

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1859

关于线程和进程的使用

最近在研究android自动化测试,为了减小log日志,每次循环执行之后清空日志,在循环体中使用线程,如下: new Thread(new Runnable() { @Override public void run() { while (!Thread.currentThread().isInterrupted()) { Process p1 = null; String cmd =

a420344的专栏 367

布尔可满足性问题(SAT)深度研究

布尔可满足性问题(Boolean Satisfiability Problem, SAT)是计算机科学和数理逻辑中的一个核心决策问题。其定义为:对于一个给定的布尔逻辑公式,判断是否存在一组对其变量的真值赋值(即,为每个变量指定真 (True) 或假 (False)),使得该公式的最终计算结果为真。如果存在这样的赋值,则称该布尔公式是可满足的 (satisfiable);否则,称其为不可满足的 (unsatisfiable)。

步子哥的博客 495

进程和线程区别以及各自用法

1.定义的不同 进程 进程是系统进行资源分配和调度的一个独立单位. 线程 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源 2.区别 1.一个程序至少有一个进程,一个进程至少有一个线程...

xiaobai_IT_learn的博客 211

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python进程池、线程池的简单用法示例

本文介绍了Python中进程池(ProcessPoolExecutor)和线程池(ThreadPoolExecutor)的使用方法及区别。进程池适用于CPU密集型任务,需要函数和数据可序列化;线程池适用于I/O密集型任务,支持共享内存。文章通过代码示例展示了两种池的submit和as_completed用法,并详细对比了它们的特性差异,包括序列化要求、类方法调用等限制。此外,还提出了解决进程池类内函数无法序列化的方案,并推荐在高并发场景下采用多进程+协程的最佳实践。

weixin_49354660的博客 503

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

进程与线程

在Java中,线程和进程都是十分重要的概念,今天,我们来认识一下他们。

m0_64308748的博客 1061

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

线程通信与进程通信的区别

线程通信:线程共享进程内存,通信高效但需同步机制保证数据安全。进程通信:进程间内存独立,需要通过操作系统提供的通信手段交换数据,安全性高但性能开销大。好的!下面我给你详细讲解几种常见的进程通信(IPC)方式和线程通信同步机制的实现示例,包含C语言代码示范,帮你更好理解和掌握。方面Java线程通信Java进程通信实现方式LockSocket、文件映射、JNI封装等共享资源共享进程内存,变量、对象通过文件、网络等跨进程传递数据典型应用多线程并发控制跨进程数据交换、分布式通信好的!

wangjinjin180的博客 1215

Python | 进程、线程是什么?它们有何区别,如何运用,进程与线程介绍

进程与线程概念解析 进程与线程的关系可类比工厂车间和工人:进程相当于车间,线程相当于工人。通过增加线程(车间工人)或进程(工厂车间)可提高程序运行效率。串行程序通过多线程或多进程可转变为并发程序。 关键区别: 进程资源独立,线程共享进程资源 多线程适用于IO密集型任务(文件/网络操作) 多进程适用于计算密集型任务(大量数据计算) 实现方式: 多线程:使用threading模块,需注意线程安全(锁机制) 多进程:使用multiprocessing模块,适合利用多核CPU 优化技巧: 线程/进程池控制并发数量

2501_91112998的博客 958

线程学习开端之 线程与进程

1、线程与进程    线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程包含了表示进程内执行环境必须的信息。进程的所有信息对该进程的所有线程都是共享的。   线程与进程区别:   ⑴进程有独立的地址空间;线程没有单独的地址空间(同一进程内的线程共享进程的地址空间)。   ⑵一个进程崩溃后,在保护模式下不会对其它进程产生影响;一个线程死掉就等于整个进程死掉   ⑶多进程的程

qq_52503627的博客 159

Java-Thread 线程、进程、线程和进程的区别、线程执行方式、线程的生命周期、线程休眠、线程池

1.继承线程类;2.重写run方法;t3.start();//串行t4.start();System.out.println("t5线程执行");});t5.start();@OverrideSystem.out.println("t6线程执行");});t6.start();System.out.println("main线程执行完毕");@OverrideSystem.out.println("t3线程执行");@Override。

m0_64671979的博客 108

进程和线程的区别、进程线程的通讯+posix多线程函数

区别:             进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:       简而言之,一个程序至少有一个进程,一个进程至少有一个线程。       线程的划分尺度小于进程,使得多线程程序的并发性高。       另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运

heanyu的专栏 1751

进程与线程的概念及区别

** @进程与线程的概念及区别** Linux系统各种软件和服务存在于系统,必然会占用系统各种资源,系统资源是如何分配及调度的,本节将给读者展示系统进程、资源及调度相关的内容。 进程( process)是计算机中的软件程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体,在当代面向线程设计的计算机...

qq_44865556的博客 146

python中协程和线程的区别,python进程和线程、协程的区别

https://www.cnblogs.com/lxmhhy/p/6041001.html现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来。python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程。本文主要介绍进程、线程和协程三者之间的区别。一、概念1、进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度...

weixin_31966453的博客 399

线程、进程及其联系与区别

一、进程         1、进程的概念                 进程是操作系统实现并发执行的重要手段,也是操作系统为程序提供的重要运行环境抽象。                 进程最根本的属性是动态性和并发性。以下是从不同角度对进程的解释:                 a、进程是程序的一次执行                 b、进程是可以与其他计算并发执行的计算   ...

John Will的博客 278

什么是进程?什么是线程?进程与线程的区别?

目录 什么是进程?什么是线程? 为什么要有线程? 进程与线程的区别? 进程与线程的选择取决条件? 什么是进程?什么是线程? 进程:进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用程序一旦执行,就是一个进程。每个进程都有自己独立的地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据...

xzp_12345的博客 1万+

进程与线程的区别和联系

程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程,也就是说进程是系统进行资源分配和调度的一个独立单位,每个进程都有自己单独的地址空间。所以说程序与进程的区别在于,程序是指令的集合,是进程运行的静态描述文本,而进程则是程序在系统上顺序执行时的动态活动。 但是进程存在着很多缺陷,主要集中在两点: (1).进程只能在同一时间干一件事情,如果想同时干两件...

qq_37791134的博客 1万+
上一篇: 多线程中的生产者消费者模型
下一篇: 数据库是什么(以mysql数据库为例)
ErikChan.hk
博客等级 码龄12年 107粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值