首页 > 系统相关 >进程和线程

进程和线程

时间:2023-05-29 14:33:22浏览次数:36  
标签:火车 多个 车厢 线程 一列 进程

什么是进程?

启动一个应用程序,开始运行代码,计算机就要给他分配各种资源,这样就拉起了一个进程,

例如:启动jmeter,是启动了一个进程,进程下可以有多个线程,CPU分配时间片,先分给进程,再分给进程下的线程;

进程和线程的关系:

做个简单的比喻:进程=火车,线程=车厢 1、线程在进程下行进(单纯的车厢无法运行) 2、一个进程可以包含多个线程(一辆火车可以有多个车厢) 3、不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘) 4、同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易) 5、进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源) 6、进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火车不会影响到另外一列火车,但是如果一列火车上中间的一节车厢着火了,将影响到所有车厢) 7、进程可以拓展到多机,进程最多适合多核(不同火车可以开在多个轨道上,同一火车的车厢不能在行进的不同的轨道上) 8、进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。(比如火车上的洗手间)-"互斥锁" 9、进程使用的内存地址可以限定使用量(比如火车上的餐厅,最多只允许多少人进入,如果满了需要在门口等,等有人出来了才能进去)-“信号量”

 

标签:火车,多个,车厢,线程,一列,进程
From: https://www.cnblogs.com/licuicui/p/17440333.html

相关文章

  • java线程池
    1.JDK中的Executor框架是基于生产者-消费者模式的线程池,提交任务的线程是生产者,执行任务的线程是消费者。Executor线程池可以用于异步任务执行,而且支持很多不同类型任务执行策略,同时为任务提交和任务执行之间的解耦提供了标准方法。Executor线程池支持如下三种线程执行策略:(1).顺序......
  • ABAP 多线程
    Codelistingfor:ZTEST9010Description:12345*&---------------------------------------------------------------------**&ReportZTEST_ASYNC_RFC*&---------------------------------------------------------------------**&*&-----------......
  • Spring中的单例bean是线程安全的吗?
    Spring并没有对单例bean作线程安全的处理,在并发条件下Spring的bean是否是线程安全的有如下两种情况:(1)无状态的bean:没有数据存储能力,例如service类和dao类都是无状态的bean,所以是线程安全的。(2)有状态的bean:有数据存储能力,在并发环境下会发生线程安全问题,需要自行保证线程安全问题,......
  • java多线程
    java多线程进程、线程与多线程进程是执行程序的一次执行过程,是一个动态的概念,是系统支援分配的单位通常一个进程可以包含一个或多个线程。线程是CPU调度和执行的单位线程就是独立执行的路径,由cpu调度线程会带来额外的开销,如cpu调度时间,并发控制开销每个线程在自己......
  • 如何让Task在非线程池线程中执行?
    Task承载的操作需要被调度才能被执行,由于.NET默认采用基于线程池的调度器,所以Task默认在线程池线程中执行。但是有的操作并不适合使用线程池,比如我们在一个ASP.NETCore应用中承载了一些需要长时间执行的后台操作,由于线程池被用来处理HTTP请求,如果这些后台操作也使用线程池来调度,......
  • 线程池
    线程池的七大参数:(1)核心线程数。(2)最大线程数。(3)非核心线程存活时间。(4)非核心线程存活时间的单位。(5)阻塞队列。(6)线程工厂。(7)拒绝策略。拒绝策略有四种:(1)由主线程执行这个任务。(2)丢弃任务不报错。(3)丢弃任务报错。(默认)(4)丢弃最先进来的任务并尝试执行当前任务。线程池执行......
  • Qt线程简单使用一:QThread~创建线程类子类
     需求:点击QPushButton按钮,QLabel中的数字,不断累加,一直到999。 做法:点击QPushButton后,启动线程,线程while循环,不断发送累加的数字回主线程,修改QLabel中的数字 其他:这种线程的写法是最简单的,全部是Qt封装好的,只需要重写run函数就可以了。 主要代码://......
  • Java 线程
    栈与栈帧JavaVirtualMachineStacks(Java虚拟机栈)每个线程启动后,虚拟机就会为其分配一块栈内存,是线程私有的。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存;每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。  线程上下文切换(ThreadContext......
  • 2023-05-28:为什么Redis单线程模型效率也能那么高?
    2023-05-28:为什么Redis单线程模型效率也能那么高?答案2023-05-28:1.C语言实现,效率高C语言程序运行速度快,因为其相较于其他高级语言更加接近底层机器。由于C语言直接操作内存,不会像其他语言那样依赖虚拟机或垃圾回收机制等中间层,从而能够实现更高的执行效率。2.单线程的优势Redi......
  • LockSupport与线程中断
    1LockSupport是什么LockSupport是用来创建锁和其他同步类的基本阻塞原语。park方法可以阻塞线程,unpark方法可以唤醒线程。与object的wait和notify不同的是,不需要synchonized的限制,没有先后顺序的限制。2线程中断线程不应该被其他线程中断,应该自己中断。线程的三个中断方法......