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

wordpress编辑和作者的权限区别深圳seo推广培训

wordpress编辑和作者的权限区别,深圳seo推广培训,帝国cms做微网站,家用电器销售的网站开发八股文-多线程、并发 最近学到了一种方法#xff0c;可以用于简历项目经验编写以及面试题目的回答 STAR法则#xff1a;在什么背景下#xff0c;你需要解决什么问题#xff0c;你做了啥#xff0c;得到了什么结果 情境#xff08;Situation#xff09;#xff1a; 描…八股文-多线程、并发 最近学到了一种方法可以用于简历项目经验编写以及面试题目的回答 STAR法则在什么背景下你需要解决什么问题你做了啥得到了什么结果 情境Situation 描述你面对的特定情境或背景。 任务Task 说明你面临的具体任务或挑战。 行动Action 阐述你采取了什么行动来解决问题或完成任务。 结果Result 指出你的行动带来了什么结果以及你取得了什么成就。 参考https://blog.csdn.net/qq_37037348/article/details/139144523 多线程是啥为啥要有多线程 在单个程序中可以同时运行多个线程执行不同的任务。学习了一个操作系统上面运行多个进程的方法一个进程上面用多个线程管理。计算机最早出现的时候还没有操作系统程序直接运行在计算机上这样一个计算机的功能有限资源利用率也不高。所以就出现了操作系统通过进程的方式实现一个计算机可以同时运行多个程序同时一个程序里面又需要处理多种任务如果所以任务用一个线程来执行那么多个任务只能排队处理同样效率低下无法好好的利用资源内存、磁盘IO、CPU等。 并行处理、充分利用资源 → 提高性能和效率、改善用户体验 使用多线程带来的问题 线程安全问题一致性问题、死锁相互等待、资源争抢CPU时间、内存、I/O、编程复杂、可见性内存分为工作内存和主内存这样做主要是为了提高效率、有序性问题指令重排 怎么解决这些问题 同步机制volatile、synchronized、原子类、Lock显式锁 指令重排是什么为啥要指令重排 编译器或者处理器对指令执行顺序进行调整为了提高执行效率。对于重排的指令会遵循以下原则不影响单线程执行的语义。但是多线程就不能够保证了会出现可见性问题、有序性问题。多线程下正常执行语句也不能够保证原子性所以基于这两种场景为了保证并发安全性就出现了锁和其他的一些机制。主要包括volatilesynchronized显式锁原子类等 解决指令重排的方法 Java提供了一些机制来解决指令重排带来的问题 volatile关键字通过使用volatile关键字可以确保变量的读写操作对所有线程都是可见的并且保证操作的有序性。volatile变量的写操作对任意后续的volatile变量的读操作都是可见的。内存屏障阻止重排序https://juejin.cn/post/6901283327160877063 synchronized关键字使用synchronized可以确保同一时间只有一个线程可以执行同步代码块从而保证操作的原子性和有序性。 final关键字对于final字段一旦初始化完成其值就不会被改变。这可以确保在构造函数中对final字段的赋值在构造函数结束后对其他线程是可见的。 原子类Java提供了一系列的原子类如AtomicInteger这些类利用CASCompare-And-Swap操作来保证操作的原子性从而避免指令重排的问题。 指令重排为啥能够提高执行效率 这个就是编译器和处理器做的一些优化主要原则是提高各个硬件CPU、内存、寄存器的利用率减少空闲时间 volatile是啥有什么用 这个就得说到JMMJava内存模型Java Memory Model简称JMM。内存模型把内存分为线程工作内存和主内存。加了volatile修饰的变量就会直接利用本地内存这样多个线程set操作会直接从线程内存同步到主内存get操作会直接从主内存同步到线程内存。 JMM的三个核心特性包括 可见性确保一个线程对共享变量的修改能够及时地被其他线程观察到。例如使用volatile关键字修饰的变量可以保证对该变量的读写操作对所有线程都是即时可见的。 原子性确保操作是不可分割的即当一个线程执行原子操作时其他线程不能插入执行其他操作。Java中的原子操作包括对基本数据类型的赋值操作以及synchronized块或方法。 有序性JMM通过happens-before关系来确保操作的有序性。如果一个操作A happens-before 操作B那么在执行操作B之前操作A的结果已经对操作B可见且操作A的执行顺序在操作B之前。 指令重排序破坏了可见性和有序性。 参考https://www.jianshu.com/p/a67dc1c11088 双层校验锁https://www.jianshu.com/p/c6a42c543abf 线程的生命周期 https://www.jianshu.com/p/c22ff5cc4a8f synchronized底层实现锁升级 https://blog.csdn.net/qq_32907195/article/details/108906260 https://blog.csdn.net/m0_69519887/article/details/138546440 https://xiaolincoding.com/interview/juc.html#synchronized%E5%92%8Creentrantlock%E5%8F%8A%E5%85%B6%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF https://blog.csdn.net/zhouzhenghu123/article/details/140086311 https://cloud.tencent.com/developer/article/1911691 利用对象实现锁每个对象都有一个相关联的监视器monitor监视器有4个重要的变量计数器、当前线程waitSet和entryList。 JDK 1.6 之前synchronized 是重量级锁。JDK 1.6 之前synchronized 是重量级锁为了优化就有了锁升级 处理锁升级还有其他优化手段锁消除、锁粗化、锁自旋。 synchronized 核心优化方案主要包含以下 4 个 锁膨胀synchronized 从无锁升级到偏向锁再到轻量级锁最后到重量级锁的过程它叫做锁膨胀也叫做锁升级。JDK 1.6 之前synchronized 是重量级锁也就是说 synchronized 在释放和获取锁时都会从用户态转换成内核态而转换的效率是比较低的。但有了锁膨胀机制之后synchronized 的状态就多了无锁、偏向锁以及轻量级锁了这时候在进行并发操作时大部分的场景都不需要用户态到内核态的转换了这样就大幅的提升了 synchronized 的性能 。 锁消除指的是在某些情况下JVM 虚拟机如果检测不到某段代码被共享和竞争的可能性就会将这段代码所属的同步锁消除掉从而到底提高程序性能的目的。比如单线程使用某些线程安全的容器有可能不会加锁实现是JIT 即时编译时通过对运行上下文的扫描经过逃逸分析去除不可能存在共享资源竞争的锁通过这种方式消除没有必要的锁可以节省毫无意义的请求锁时间 锁粗化将多个连续的加锁、解锁操作连接在一起扩展成一个范围更大的锁。加锁解锁也需要消耗资源 自适应自旋锁指通过自身循环尝试获取锁的一种方式优点在于它避免一些线程的挂起和恢复操作因为挂起线程和恢复线程都需要从用户态转入内核态这个过程是比较慢的所以通过自旋的方式可以一定程度上避免线程挂起和恢复所造成的性能开销。 内核态和用户态 https://www.jianshu.com/p/011f4062d372 用户态和内核态是程序运行的两种状态 线程调度部分操作底层也会依赖操作系统比如重量级锁会依赖操作系统的。这个时候就相当于从用户态切换到内核态然后获取到锁又会切回来这个过程是耗时操作。轻量级锁都是在用户态直接完成不用惊动操作系统是一种优化手段。 JVM对于os kernel来说呢就相当于是一个普通的应用程序那么你想申请一把锁对线程进行调度。实现这件事的时候需要向操作系统内核申请操作系统内核帮你管理这些线程管理好了之后反馈给你。这个过程简单来说就是 从用户态到内核态的访问访问完了由内核态再反馈回来这个就叫重量级锁。 逃逸分析 https://blog.csdn.net/sky15256567734/article/details/106786870 逃逸分析Escape Analysis是编译器优化技术中的一种它用于分析对象的作用域判断对象是否在方法中创建后被外部方法所引用或者作为参数传递到其他方法中。基于这种分析编译器可以进行一些优化比如 栈上分配如果一个对象不会逃逸到方法之外那么编译器可以将这个对象的内存分配从堆内存转移到栈内存。由于栈内存的分配和回收速度通常比堆内存快这样可以提高程序的运行效率。 同步省略如果一个对象不会被其他线程访问即不会逃逸到线程之外那么编译器可以省略对这个对象的同步操作从而提高性能。 标量替换对于不会逃逸的对象如果其内部状态不需要封装在对象中编译器可以将其替换为基本类型的集合即标量。这样可以减少内存分配和提高缓存的局部性。 死代码消除如果分析出某些代码路径不会执行编译器可以将其优化掉。 在Java中逃逸分析对于实现即时编译器JIT中的优化至关重要尤其是在运行时编译的环境下如HotSpot虚拟机。通过逃逸分析JIT编译器能够在运行时决定是否可以应用上述优化。 需要注意的是逃逸分析并不是在所有的场景下都能带来性能提升有时候过度优化可能会导致代码膨胀甚至因为优化错误而引入bug。因此编译器在进行逃逸分析时需要权衡优化的收益和风险。 synchronized 和 lock的区别 可中断锁 https://blog.csdn.net/m0_50116974/article/details/140164578 怎么使用多线程 继承Thread、实现Runnable接口、实现Callable接口可以根据FutureTask拿到返回结果、线程池 参考 https://zhuanlan.zhihu.com/p/334737925 https://www.cnblogs.com/java1024/p/11950129.html https://blog.csdn.net/weixin_44797490/article/details/91006241 线程池怎么用原理执行流程是咋样的
http://www.dnsts.com.cn/news/238769.html

相关文章:

  • 公司网站做优化少钱python网站开发基础
  • 网页游戏网站模板四川成都网站网页设计
  • 网站概述怎么写遂宁住房和城乡建设厅网站
  • 一个域名可以做多少个二级网站金石文化规划 设计 开发风景区网站建设
  • 常州网站制作推广wordpress 科技企业
  • 哪里做网站需求四川泸州做网站的公司有哪些
  • php网站开发程序员wordpress 功能 wordpress.org
  • 中铁建设中南公司官方网站深圳十大品牌策划公司
  • 地方资讯网站源码wordpress注册邮箱空白
  • 如何自己搭建一个网站网站被做301跳转了怎么办
  • 汉口制作网站wordpress主体功能开关
  • 做外贸是不是必须有网站思源黑体可以做网站
  • 中国建设网官方网站下载e路最新版装修公司咨询电话
  • 河南亿元建设有限公司公司网站中国摄影
  • 大连在哪个网站做网上核名自己做直播网站
  • wordpress 站外链接中国未来巨型空间站
  • 公众号推广湖北网站seo设计
  • 建设厅官方网站职称什么样的网站需要改版
  • 南阳建设工程信息网站电子 东莞网站建设
  • 网站改版开发公司邯郸教育平台网站建设
  • 如何快速提升网站权重wordpress加载条
  • 建设银行山西招聘网站大连专业零基础网站建设教学培训
  • 无锡网页网站制作公司中铁局哪个局实力最大
  • 业绩显示屏 东莞网站建设技术支持网络部署方案
  • 网站备案怎么注销网络营销seo培训
  • 渝北网站制作网站开发环境分析
  • 临淄网站建设多少钱网站怎么做查询系统
  • 上海全上海全国网站建设网站视频外链怎么做
  • 网站SEO优化实训爱网卡
  • php网站开发计划潮州网站设计