当前位置: 首页 > news >正文

面试中多线程并发处理方式?

1.首先我们要搞清楚什么是并发 什么是并行?

    概念:在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。
简单讲在某一个时间中,一个CPU(单)只会运行某一个进程里的单个线程,所以我们经常称之为并发。
理解之后我们要知道同步机制,其实多线程并未真正实现微观意义上的同步,进程是一个运行单元,线程则是更小的运行单元,简而言之,就是进程细分成多个线程,譬如:一个进程A运行需要1s,它就会切换到进程B,但是实现多线程机制后,进程A细化成10个线程,每个线程只需运行0.1s,当然B线程也一样,这就出现,线程之间的切换时间更短,从宏观上看就出现同步幻象了。
所以学习多线程你得真正理解所谓的同步并发,并不是真正的“同步”。当你理解这些的时候,你就初略的感觉什么时候该使用多线程机制,其实你的电脑每个程序都至少有一个主线程,那个管理器中的每一个进程,其实内部包含若干线程,每个时间点都是某个程序进程中的某个线程在运行

相关文章:

  • Spring核心之一AOP
  • java面试准备及技巧分享
  • 数据库性能优化之为什么查询数据慢?
  • ES6 let和var的区别是什么?
  • js 将多个对象合并成一个对象 assign方法。ES6新特性有哪些
  • Vue中显示img图片,显示不出来怎么办?vue显示图片
  • Vue项目打包组件并上传到npm在其他项目和下载引用 步骤流程
  • Vue-Cli3 配置文件 全局生产环境及开发环境
  • git 常用命令 会这些就够了
  • CSS3 弹性盒子布局
  • CSS 开发常用
  • 浏览器兼容CSS的坑 对应前缀及CSS预处理
  • 饿了么平台最全开发API接口列表 elm接口 2019
  • js cookei 日期转换 随机ID 随机颜色 数组位置打乱 工作开发提升效率
  • Vue SSR服务端渲染 vue预渲染
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [NodeJS] 关于Buffer
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • create-react-app做的留言板
  • es6
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • javascript面向对象之创建对象
  • js
  • JS字符串转数字方法总结
  • Linux链接文件
  • php ci框架整合银盛支付
  • PV统计优化设计
  • python docx文档转html页面
  • Theano - 导数
  • 创建一个Struts2项目maven 方式
  • 搭建gitbook 和 访问权限认证
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 数组大概知多少
  • 我是如何设计 Upload 上传组件的
  • 译米田引理
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 如何用纯 CSS 创作一个货车 loader
  • 我们雇佣了一只大猴子...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #QT(串口助手-界面)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (原)Matlab的svmtrain和svmclassify
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .Net 代码性能 - (1)
  • .Net 垃圾回收机制原理(二)
  • .NET 设计一套高性能的弱事件机制
  • .net反编译的九款神器
  • .Net语言中的StringBuilder:入门到精通
  • [ C++ ] 继承
  • [bzoj1912]异象石(set)