进程线程的关系

举个例子   滑稽老师吃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

相关推荐

  1. 进程线关系

    2024-04-14 05:00:02       21 阅读
  2. 进程线关闭

    2024-04-14 05:00:02       36 阅读
  3. 计算机体系中程序、进程线关系解读

    2024-04-14 05:00:02       41 阅读
  4. 进程线区别

    2024-04-14 05:00:02       21 阅读
  5. 线进程区别?

    2024-04-14 05:00:02       13 阅读
  6. 线进程区别(面试)

    2024-04-14 05:00:02       13 阅读
  7. Linux进程,协线

    2024-04-14 05:00:02       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 05:00:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 05:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 05:00:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 05:00:02       20 阅读

热门阅读

  1. libftdi1学习笔记 1 - 打开/关闭设备

    2024-04-14 05:00:02       18 阅读
  2. 设计模式之责任链讲解

    2024-04-14 05:00:02       22 阅读
  3. 基于机器学习的节日大促营销模型

    2024-04-14 05:00:02       61 阅读
  4. Vue2基础知识

    2024-04-14 05:00:02       30 阅读
  5. C语言CRC通用模块代码

    2024-04-14 05:00:02       19 阅读
  6. Docker in Docker简介

    2024-04-14 05:00:02       23 阅读