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

短视频网站的动画是怎么做的wordpress绑定

短视频网站的动画是怎么做的,wordpress绑定,常州微信网站建设公司,apache如何搭建多个网站转载#xff1a;https://mp.weixin.qq.com/s/j5d4Jtxo0RgJWgpnG9HxlQ为什么要使用多线程#xff1f;防止并发编程出错最好的办法就是不写并发程序既然多线程编程容易出错#xff0c;为什么它还经久不衰呢#xff1f;A#xff1a;那还用说#xff0c;肯定在某些方面有特长…转载https://mp.weixin.qq.com/s/j5d4Jtxo0RgJWgpnG9HxlQ为什么要使用多线程防止并发编程出错最好的办法就是不写并发程序既然多线程编程容易出错为什么它还经久不衰呢A那还用说肯定在某些方面有特长呗比如你知道的【它很快非常快】我也很赞同这个答案但说的不够具体并发编程适用于什么场景如果问你选择多线程的原因就是一个【快】字面试也就不会出那么多幺蛾子了。你有没有问过你自己并发编程在所有场景下都是快的吗知道它很快何为快怎样度量想知道这两个问题的答案我们需要一个从【定性】到【定量】的分析过程使用多线程就是在正确的场景下通过设置正确个数的线程来最大化程序的运行速度(我感觉你还是啥也没说)将这句话翻译到硬件级别就是要充分的利用 CPU 和 I/O 的利用率两个正确得到保证也就能达到最大化利用 CPU 和 I/O的目的了。最关键是如何做到两个【正确】在聊具体场景的时候我们必须要拿出我们的专业性来。送你两个名词 buff 加成CPU 密集型程序I/O 密集型程序CPU 密集型程序一个完整请求I/O操作可以在很短时间内完成 CPU还有很多运算要处理也就是说 CPU 计算的比例占很大一部分假如我们要计算 12....100亿 的总和很明显这就是一个 CPU 密集型程序在【单核】CPU下如果我们创建 4 个线程来分段计算即线程1计算 [1,25亿)...... 以此类推线程4计算 [75亿100亿]我们来看下图他们会发生什么由于是单核 CPU所有线程都在等待 CPU 时间片。按照理想情况来看四个线程执行的时间总和与一个线程5独自完成是相等的实际上我们还忽略了四个线程上下文切换的开销所以单核CPU处理CPU密集型程序这种情况并不太适合使用多线程此时如果在 4 核CPU下同样创建四个线程来分段计算看看会发生什么每个线程都有 CPU 来运行并不会发生等待 CPU 时间片的情况也没有线程切换的开销。理论情况来看效率提升了 4 倍所以如果是多核CPU 处理 CPU 密集型程序我们完全可以最大化的利用 CPU 核心数应用并发编程来提高效率I/O密集型程序与 CPU 密集型程序相对一个完整请求CPU运算操作完成之后还有很多 I/O 操作要做也就是说 I/O 操作占比很大部分我们都知道在进行 I/O 操作时CPU是空闲状态所以我们要最大化的利用 CPU不能让其是空闲状态同样在单核 CPU 的情况下从上图中可以看出每个线程都执行了相同长度的 CPU 耗时和 I/O 耗时如果你将上面的图多画几个周期CPU操作耗时固定将 I/O 操作耗时变为 CPU 耗时的 3 倍你会发现CPU又有空闲了这时你就可以新建线程 4来继续最大化的利用 CPU。综上两种情况我们可以做出这样的总结线程等待时间所占比例越高需要越多线程线程CPU时间所占比例越高需要越少线程。到这里相信你已经知道第一个【正确】使用多线程的场景了那创建多少个线程是正确的呢创建多少个线程合适面试如果问到这个问题这可是对你理论和实践的统考。想完全答对你必须要【精通/精通/精通】小学算术从上面知道我们有 CPU 密集型和 I/O 密集型两个场景不同的场景当然需要的线程数也就不一样了CPU 密集型程序创建多少个线程合适有些同学早已经发现对于 CPU 密集型来说理论上 线程数量 CPU 核数(逻辑) 就可以了但是实际上数量一般会设置为 CPU 核数(逻辑) 1 为什么呢《Java并发编程实战》这么说计算密(CPU)集型的线程恰好在某时因为发生一个页错误或者因其他原因而暂停刚好有一个“额外”的线程可以确保在这种情况下CPU周期不会中断工作。所以对于CPU密集型程序 CPU 核数(逻辑) 1 个线程数是比较好的经验值的原因了I/O密集型程序创建多少个线程合适上面已经让大家按照图多画几个周期(你可以动手将I/O耗时与CPU耗时比例调大比如6倍或7倍)这样你就会得到一个结论对于 I/O 密集型程序最佳线程数 (1/CPU利用率) 1 (I/O耗时/CPU耗时)我这么体贴当然担心有些同学不理解这个公式我们将上图的比例手动带入到上面的公式中这是一个CPU核心的最佳线程数如果多个核心那么 I/O 密集型程序的最佳线程数就是最佳线程数 CPU核心数 * (1/CPU利用率) CPU核心数 * 1 (I/O耗时/CPU耗时)说到这有些同学可能有疑问了要计算 I/O 密集型程序是要知道 CPU 利用率的如果我不知道这些那要怎样给出一个初始值呢按照上面公式假如几乎全是 I/O耗时所以纯理论你就可以说是2N(NCPU核数)当然也有说 2N 1的(我猜这个 1 也是 backup)没有找到具体的推倒过程在【并发编程实战-8.2章节】截图在此大家有兴趣的可以自己看看理论上来说理论上来说理论上来说这样就能达到 CPU 100% 的利用率如果理论都好用那就用不着实践了也就更不会有调优的事出现了。不过在初始阶段我们确实可以按照这个理论之作为伪标准 毕竟差也可能不会差太多这样调优也会更好一些谈完理论咱们说点实际的公式我看懂了(定性阶段结束)但是我有两个疑问我怎么知道具体的 I/O耗时和CPU耗时呢怎么查看CPU利用率没错我们需要定量分析了幸运的是我们并不是第一个吃螃蟹的仔儿其实有很多 APM (Application Performance Manager)工具可以帮我们得到准确的数据学会使用这类工具也就可以结合理论在调优的过程得到更优的线程个数了。我这里简单列举几个具体使用哪一个具体应用还需要你自己去调研选择受篇幅限制暂不展开讨论了SkyWalkingCATzipkin上面了解了基本的理论知识那面试有可能问什么又可能会以怎样的方式提问呢面试小问小问一假设要求一个系统的 TPS(Transaction Per Second 或者 Task Per Second)至少为20然后假设每个Transaction由一个线程完成继续假设平均每个线程处理一个Transaction的时间为4s如何设计线程个数使得可以在1s内处理完20个Transaction但是但是这是因为没有考虑到CPU数目。家里又没矿一般服务器的CPU核数为16或者32如果有80个线程那么肯定会带来太多不必要的线程上下文切换开销(希望这句话你可以主动说出来)这就需要调优了来做到最佳 balance小问二计算操作需要5msDB操作需要 100ms对于一台 8个CPU的服务器怎么设置线程数呢如果不知道请拿三年级期末考试题重新做(今天晚自习留下来)答案是线程数 8 * (1 100/5) 168 (个)那如果DB的 QPS(Query Per Second)上限是1000此时这个线程数又该设置为多大呢同样这是没有考虑 CPU 数目接下来就又是细节调优的阶段了因为一次请求不仅仅包括 CPU 和 I/O操作具体的调优过程还要考虑内存资源网络等具体内容增加 CPU 核数一定能解决问题吗看到这有些同学可能会认为即便我算出了理论线程数但实际CPU核数不够会带来线程上下文切换的开销所以下一步就需要增加 CPU 核数那我们盲目的增加 CPU 核数就一定能解决问题吗在讲互斥锁的内容是我故意遗留了一个知识怎么理解这个公式呢这个结论告诉我们假如我们的串行率是 5%那么我们无论采用什么技术最高也就只能提高 20 倍的性能。如何简单粗暴的理解串行百分比(其实都可以通过工具得出这个结果的)呢来看个小 TipsTips: 临界区都是串行的非临界区都是并行的用单线程执行临界区的时间/用单线程执行(临界区非临界区)的时间就是串行百分比现在你应该理解我在讲解 synchronized 关键字时所说的最小化临界区范围因为临界区的大小往往就是瓶颈问题的所在不要像乱用try catch那样一锅端总结多线程不一定就比但线程高效比如大名鼎鼎的 Redis (后面会分析)因为它是基于内存操作这种情况下单线程可以很高效的利用CPU。而多线程的使用场景一般时存在相当比例的I/O或网络操作另外结合小学数学题我们已经了解了如何从定性到定量的分析的过程在开始没有任何数据之前我们可以使用上文提到的经验值作为一个伪标准其次就是结合实际来逐步的调优(综合 CPU内存硬盘读写速度网络状况等)了最后盲目的增加 CPU 核数也不一定能解决我们的问题这就要求我们严格的编写并发程序代码了灵魂追问我们已经知道创建多少个线程合适了为什么还要搞一个线程池出来创建一个线程都要做哪些事情为什么说频繁的创建线程开销很大多线程通常要注意共享变量问题为什么局部变量就没有线程安全问题呢
http://www.pierceye.com/news/50389/

相关文章:

  • html代码特效银河系金华网站建设方案优化
  • 怎么做一个免费的网站wordpress单页面
  • 海南汽车网站建设企业建网站的好处
  • 哪个网站可以专门做产品推广wordpress修改摘要字数
  • 成品网站开发邯郸市教育考试院网站
  • 注册网站建设开发网新科技集团
  • 滑县网站建设公司自己给公司做网站难不难
  • 网站维护运营好做吗高端大气上档次的网站模板
  • 长春市网站推广wordpress插件破解下载
  • 吉林省建设监理检测网站共享互助医疗网站建设
  • 悉知网站建设网站管理办法制度
  • 网站建设易尔通网站建设7大概要多久
  • 网文订阅做多的网站wordpress子主题如何制作
  • 相亲网站怎么做的宁德市公共资源交易中心
  • 正宗营销型网站建设无锡网络推广运营公司
  • 网站服务器崩溃怎么办wordpress充值卡插件
  • 网站开发的工资网站开发的合同范本
  • 标签化网站网站服务器需要多少钱
  • 猪八戒网站开发网络营销网站建设哪家好
  • 广东深圳住房和城乡建设部网站wordpress 用ip访问不了
  • 河北恒山建设集团网站wordpress mu 2017
  • 输入网站查看空间erp企业管理系统手机版
  • 湖南网站建设的公司排名网站后台可视化编辑
  • 石家庄站到正定机场北京建筑设计院加盟
  • 网站设计模板素材江宁网站建设多少钱
  • 网站开发与维护价格百度广告联盟平台官网下载
  • 网站建设需要学什么证闲鱼怎么做钓鱼网站
  • 网站建设比较网站首页seo怎么做
  • 针对网站开发软件 代替手动wordpress 三站合一
  • 我要建网站网站设计主色学校