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

网站做闪电电磁京东的电子网站建设

网站做闪电电磁,京东的电子网站建设,网站建设 织梦者,西安网站建设哪家公司好进程是资源分配#xff08;内存地址、文件 I/O 等#xff09;的基本单位#xff0c;线程是执行调度#xff08;处理器资源调度#xff09;的基本单位#xff1b; Loom 项目若成功为 Java 引入纤程#xff08;Fiber#xff09;#xff0c;则线程的执行调度单位可能变为…进程是资源分配内存地址、文件 I/O 等的基本单位线程是执行调度处理器资源调度的基本单位 Loom 项目若成功为 Java 引入纤程Fiber则线程的执行调度单位可能变为纤程 在 Java 里实现并发基本都是基于线程的 文章目录1. 线程的实现2. Java 线程调度3. 状态转换1. 线程的实现 Java 语言提供了不同硬件和操作系统平台下对线程操作的统一处理每个调用过 start() 且还未结束的 java.lang.Thread 类的实例代表一个线程 Native 方法没有使用或无法使用平台无关的手段来实现或者为了执行效率使用 Native 方法 线程实现的三种方式 内核线程实现1:1 实现Kernel-Level ThreadKLT直接由操作系统内核支持的线程由内核完成线程切换内核通过调度器Scheduler进行线程调度并将线程任务映射到各个处理器上支持多线程的内核称为多线程内核 轻量级进程Light Weight ProcessLWP内核线程的高级接口通常意义上的线程每个轻量级进程由一个内核线程支持 局限性每个线程操作创建、析构、同步都需要进行系统调用需要在用户态和内核态之间来回切换代价较高消耗一定的内核资源内核线程的占空间系统支持轻量级进程的数量是有限的 用户线程实现1:N 实现User ThreadUT广义上的用户线程指所有非内核线程的线程狭义上的用户线程指完全建立在用户空间的线程库上系统内核不能感知到存在和如何实现的线程 若程序实现得当用户线程不需要切换到内核态操作可以非常快速且低消耗能支持规模更大的线程数量如部分高性能数据库中的多线程 局限性没有系统内核的支援所有线程操作创建、销毁、切换、调度都需要用户程序自己处理阻塞处理、线程映射到处理器等问题的处理非常复杂导致用户线程的视线通常比较复杂 除了有明确需求不支持多线程的操作系统下的多线程程序一般应用程序不倾向使用用户线程Java、Ruby 等语言都曾经使用并弃用用户线程但近年来一些以高并发为买点的新语言Golang、Erlang 等又普遍支持了用户线程 混合实现N:M 实现将内核线程与用户线程一起使用的实现方式UNIX 系列系统如 Solaris、HP-UX 等提供了混合线程模型 用户线程建立在用户空间线程的创建、切换、析构等操作廉价可支持大规模的用户线程并发 操作系统支持的轻量级进程作为用户线程和内核线程的桥梁可以使用内核的线程调度及处理器映射大大降低了整个进程被阻塞的风险 Java 线程的实现 JDK 1.2 以前的 Classic VM 是基于绿色线程Green Threads实现的JDK 1.3 起商用 JVM 的线程普遍以内核线程实现 HotSpot VM 的每一个线程直接映射到一个操作系统原生线程来实现中间没有额外的间接结构HotSpot 不会去干涉线程调度可设置线程优先级给操作系统提供调度建议何时冻结、何时唤醒线程、给线程分配多少处理器执行时间、把线程安排给哪个处理器核心执行等都是操作系统全权负责的 两个例外 Java ME 的 CLDC HotSpot ImplementationCLDC-HI同时支持用户线程实现和混合模型当 Java 线程执行一个阻塞调用时CLDC-HI 会为之单独开一个内核线程然后调度执行其他 Java 线程Solaris 平台的 HotSpot VM 支持内核线程实现通过 Bound threads 或 Alternate Libthread和混合模式通过 LWP/Thread Based Synchronization通过 -XX:UseLWPSynchronization默认和 -XX:UseBoundThreads 指定 线程模型只对线程的并发规模和操作成本产生影响对 Java 程序的编码和运行过程的差异是透明的 2. Java 线程调度 线程调度系统为线程分配处理器使用权的过程主要分为协同式Cooperative Threads-Scheduling线程调度和抢占式Preemptive Threads-Scheduling线程调度 协同式Cooperative Threads-Scheduling线程调度线程的执行时间由线程本身控制由线程主动通知系统切换到另外的线程Lua 中的协同例程 实现简单没有线程同步问题切换操作对线程自己是可知的线程执行的时间不可控可能会导致整个系统一直阻塞在一个线程中 抢占式Preemptive Threads-Scheduling线程调度每个线程由系统来分配执行时间线程的切换不由线程本身决定Java 的 Thread::yield 可以主动让出执行时间但不能主动获取执行时间 不会有一个线程导致整个进程阻塞的问题即使进程出现问题也不会影响到整个操作系统 线程优先级可以给操作系统一些线程调度建议但并不是一项稳定的调优手段不同操作系统的不同优先级会变得相同且系统可能自行改变优先级根据现场执行频率 3. 状态转换 Java 语言定义的 6 中线程状态 新建New创建后尚未启动的线程运行Runnable正在执行的线程、正在等待操作系统为它分配执行时间的线程包括操作系统线程状态中的 Running 和 Ready无限期等待Waiting等待被其他线程显示唤醒的线程该线程不会被操作系统分配处理器时间 Object::wait()没有设置 timeout 参数Thread::join()没有设置 timeout 参数LockSupport::park() 限期等待Timed Waiting在一定时间后自动由系统唤醒该线程不会被操作系统分配处理器时间 Thread::sleep()Object::wait()设置了 timeoutThread::join()设置了 timeoutLockSupport::parkNanos()LockSupport::parkUntil() 阻塞Blocked线程被阻塞在等待获得一个排它锁在另一个县城放弃这个锁时发生程序在等待进入一个同步区域结束Terminated已终止的线程线程已经结束执行 上一篇「JVM 高效并发」Java 内存模型 PS感谢每一位志同道合者的阅读欢迎关注、评论、赞 参考资料 [1]《深入理解 Java 虚拟机》
http://www.w-s-a.com/news/158097/

相关文章:

  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名
  • 创建一家网站如何创设计网页的快捷网站
  • 1688代加工官方网站h5开发教程
  • 静态网站源码下载网站怎么显示备案号
  • 网站代码设计网站开发维护任职要求
  • 长寿做网站的电话怎么快速刷排名
  • 上海市中学生典型事例网站邯郸全网推广
  • 厦门网站建设680元好男人的最好的影院
  • 石家庄网站建设设计产品设计专业就业前景
  • 网站移动排名做最好最全的命理网站
  • 网站怎么防黑客杭州市做外贸网站的公司
  • 网站推广公司认准乐云seo易语言做网站登录
  • 配色设计网站推荐网站下拉菜单重叠
  • 内容展示型网站特点在北京注册公司需要多少钱
  • h5网站源代码创意设计理念
  • 岳阳网站开发服务推广运营平台
  • 网站开发得多长时间湖南建设人力资源网证书查询
  • 论坛网站开发网络营销是什么时候产生的
  • 帮人做网站赚钱无忧软文网