进程线程的关系

这篇具有很好参考价值的文章主要介绍了进程线程的关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

举个例子   滑稽老师吃100只鸡

如何加快滑稽老师吃鸡的效率??

有一个方案,搞两个房间,两个滑稽老师  一个滑稽吃50只鸡,速度一定会大幅度增加

多进程的方案  创建新的进程  就需要申请更多的资源(房间和桌子)

另一个方案,使用多线程

房间和桌子还是那些,但是吃鸡的主角多了一个(这种方案,资源开销更小)

现在我们有两个滑稽,能够提高效率,如果引入更多的滑稽呢?

现在引入更多的线程,每个滑稽吃的鸡更小了,速度更快了

 (与之对应的,如果搞四套房间,成本就更高了)

此时这些滑稽老师,共享的同一份资源

引入的滑稽,是越多越好吗??
当引入的线程,达到一定数量之后,在继续尝试引入新的线程,好像就没有办法提升了

桌子坐不下了

当线程数量太多的时候,线程之间就会相互竞争CPU的资源(CPU核心数是有限的)

非但不会提高效率,反而还会增加调度 的开销

多线程问题还有一个重要的问题,线程之间,可能会打架

比如,一号滑稽和2号滑稽看上了同一个鸡大腿,同时伸手去拿,谁能拿到???存在诸多变数!!!!!!!线程之间起了冲突,就可能会导致代码中出现一些逻辑上的错误(线程安全问题)

多线程这种方式,不太好驾驭,主要还是因为这个东西,有一定的复杂

多线程还有一个问题,共享资源也会有副作用

1号和2号抢鸡大腿的时候,1号抢到了,2号没抢到,2号滑稽很生气

一个线程如果抛出异常,并且没有处理好,就可能会导致整个进程被终止

小结:

1,进程是包含线程的

2,每个线程,也是一个独立的执行流,可以执行一些代码,并且单独的参与到CPU的调度中。(状态,上下文,优先级,记账信息,每个线程都有自己的一份)

3.每个线程,有自己的资源,进程中的线程共用这一份资源(内存空间和文件描述符表)

进程是资源分配的基本单位,线程是调度执行的基本单位

4.进程和进程之间,不会相互影响,如果同一个进程中的某个线程,抛出异常,是可能会影响到其他线程,会把整个进程中的所有线程都异常终止

5,线程也不是越多越好,要能够合适。如果线程太多了,调度开销可能非常明显。

6.同一个进程中的线程之间,可能会相互干扰,引起线程安全问题

Q:如果面试官让你,转前端?转android?转测试行不行???

必须行!!!!!

 多线程编程

写代码的时候,可以使用多进程进行并发编程,也可以使用多线程进行并发编程

在Java中 不太推荐 很多和多进程编程相关的api,在Java标准库中,都没有提供

多线程在并发编程的时候,效率更高(频繁创建销毁的时候)

尤其是对于Java进程,是要启动Java虚拟机的

启动Java虚拟机,这个事情的开销更大

搞多个Java进程就是多个Java虚拟机

系统提供了多线程编程的api ,java标准库,把这些api封装了在代码中就可以使用了

java中提供的api,Thread这样的类

Demo 实例

看一些第三方库文档   当开始上手,就应该要找demo/tutor/example/get  strat文章来源地址https://www.toymoban.com/news/detail-850729.html

到了这里,关于进程线程的关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别

    CPU、内存、IO之间的性能差异巨大 多核心CPU的发展 线程的本质是增加一个可以执行代码工人 多线程的优点 多个执行流,并行执行。(多个工人,干不一样的活) 多线程的缺点 上下文切换慢,切换上下文典型值1us vs 0.3ns/cycle CPU在执行A任务(A没有执行完)时,切换到任务B,需

    2024年02月14日
    浏览(49)
  • 【多线程系列-01】深入理解进程、线程和CPU之间的关系

    多线程系列整体栏目 内容 链接地址 【一】深入理解进程、线程和CPU之间的关系 https://blog.csdn.net/zhenghuishengq/article/details/131714191 【二】java创建线程的方式到底有几种?(详解) https://blog.csdn.net/zhenghuishengq/article/details/127968166 【三】深入理解java中线程的生命周期,任务调度 ht

    2024年02月16日
    浏览(61)
  • 【Unity研究】进程、线程、对象池的关系

    目录 简要概括 名词解释 实例 进程 线程 对象池 实际使用 对象池实际操作(含代码) 建立主线程以外的线程方法 在主线程中运行的生命周期 在副线程中运行的生命周期 正在运行的Unity游戏就可以看做一个进程的实例,线程是进程内的执行单元(一个进程可以拥有多个线程

    2024年02月08日
    浏览(39)
  • snakemake运行时,节点数, 进程数,线程数,任务数之间的关系,实例说明

    在使用 Snakemake 和 SLURM 运行并行计算作业时,理解节点数、进程数、线程数和任务数之间的关系是很重要的。这些参数决定了作业如何在集群上分配和执行。下面是这些参数的基本解释和它们如何相互作用: 节点数 ( -N ) : 指定作业需要使用的物理服务器(节点)数量。每个

    2024年04月25日
    浏览(37)
  • Java多线程:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念。 进程 进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的\\\".exe\\\"都可以理解为一个进程 线程 进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很

    2023年04月09日
    浏览(43)
  • Synchronized与Java线程的关系

    ​ Java多线程处理任务时,为了线程安全,通常会对共享资源进行加锁,拿到锁的线程才能进行访问共享资源。而加锁方式通过都是Synchronized锁或者Lock锁。 ​ 那么多线程在协同工作的时候,线程状态的变化都与锁对象有关系。 ​ Java采用synchronized、以互斥同步的方式

    2024年02月11日
    浏览(31)
  • 【 Python 全栈开发 - WEB开发篇 - 21 】进程与线程

    进程和线程都是计算机中用来实现多任务并发的机制,但它们有区别和联系。 区别: 定义不同:进程是操作系统分配资源的基本单位,是程序执行时的一个实例,包括代码、数据和资源,可以看成是程序的一次执行过程。而线程是进程内的一个执行单元,是程序执行流的最

    2024年02月08日
    浏览(41)
  • Java并发(一)----进程、线程、并行、并发

    进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了

    2023年04月10日
    浏览(61)
  • Java并发(1)--线程,进程,以及缓存

    进程 进程是程序的一次执行过程,系统程序的基本单位。有自己的main方法,并且主要由主方法运行起来的基本上就是进程。 线程 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享 堆

    2024年04月16日
    浏览(46)
  • Java并发(三)----创建线程的三种方式及查看进程线程

    例如: 输出 注意:这里通过 @Slf4j 注解打印的日志 把【线程】和【任务】(要执行的代码)分开 Thread 代表线程 Runnable 可运行的任务(线程要执行的代码) 例如: 输出 Java 8 以后可以使用 lambda 精简代码 小结 方法1 是把线程和任务合并在了一起,方法2 是把线程和任务分开

    2023年04月24日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包