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

网站建设div可拖拽布局网址收录网站

网站建设div可拖拽布局,网址收录网站,沈阳网络优化公司哪家好,东莞网络营销全网推广进程是资源分配(内存地址、文件 I/O 等)的基本单位,线程是执行调度(处理器资源调度)的基本单位; Loom 项目若成功为 Java 引入纤程(Fiber),则线程的执行调度单位可能变为…

进程是资源分配(内存地址、文件 I/O 等)的基本单位,线程是执行调度(处理器资源调度)的基本单位;

Loom 项目若成功为 Java 引入纤程(Fiber),则线程的执行调度单位可能变为纤程;

在 Java 里实现并发基本都是基于线程的;

文章目录

      • 1. 线程的实现
      • 2. Java 线程调度
      • 3. 状态转换

1. 线程的实现

Java 语言提供了不同硬件和操作系统平台下对线程操作的统一处理;每个调用过 start() 且还未结束的 java.lang.Thread 类的实例代表一个线程;

  • Native 方法,没有使用或无法使用平台无关的手段来实现,或者为了执行效率使用 Native 方法;

线程实现的三种方式

  • 内核线程实现(1:1 实现),(Kernel-Level Thread,KLT),直接由操作系统内核支持的线程;由内核完成线程切换,内核通过调度器(Scheduler)进行线程调度,并将线程任务映射到各个处理器上;(支持多线程的内核称为多线程内核);
    • 轻量级进程Light Weight Process,LWP),内核线程的高级接口,通常意义上的线程,每个轻量级进程由一个内核线程支持;

请添加图片描述

局限性:每个线程操作(创建、析构、同步)都需要进行系统调用,需要在用户态和内核态之间来回切换,代价较高;消耗一定的内核资源(内核线程的占空间),系统支持轻量级进程的数量是有限的

  • 用户线程实现(1:N 实现),(User Thread,UT),广义上的用户线程指所有非内核线程的线程;狭义上的用户线程指完全建立在用户空间的线程库上,系统内核不能感知到存在和如何实现的线程;

若程序实现得当,用户线程不需要切换到内核态,操作可以非常快速且低消耗,能支持规模更大的线程数量(如部分高性能数据库中的多线程);

局限性:没有系统内核的支援,所有线程操作(创建、销毁、切换、调度)都需要用户程序自己处理,阻塞处理、线程映射到处理器等问题的处理非常复杂,导致用户线程的视线通常比较复杂;

除了有明确需求(不支持多线程的操作系统下的多线程程序),一般应用程序不倾向使用用户线程,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 Implementation(CLDC-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(),设置了 timeout;
    • Thread::join(),设置了 timeout;
    • LockSupport::parkNanos();
    • LockSupport::parkUntil();
  • 阻塞(Blocked),线程被阻塞,在等待获得一个排它锁(在另一个县城放弃这个锁时发生);程序在等待进入一个同步区域;
  • 结束(Terminated),已终止的线程;线程已经结束执行;

请添加图片描述


上一篇:「JVM 高效并发」Java 内存模型

PS:感谢每一位志同道合者的阅读,欢迎关注、评论、赞!


参考资料:

  • [1]《深入理解 Java 虚拟机》

文章转载自:
http://unipotent.rdbj.cn
http://matchlock.rdbj.cn
http://ergophile.rdbj.cn
http://impoliticly.rdbj.cn
http://hobbyist.rdbj.cn
http://airbus.rdbj.cn
http://toxicoid.rdbj.cn
http://multicide.rdbj.cn
http://histopathology.rdbj.cn
http://stylize.rdbj.cn
http://subtropical.rdbj.cn
http://genuine.rdbj.cn
http://hydremia.rdbj.cn
http://anthroposophy.rdbj.cn
http://demoniac.rdbj.cn
http://hireling.rdbj.cn
http://humble.rdbj.cn
http://unauspicious.rdbj.cn
http://albuminose.rdbj.cn
http://harmless.rdbj.cn
http://moujik.rdbj.cn
http://heel.rdbj.cn
http://trough.rdbj.cn
http://idiographic.rdbj.cn
http://jambi.rdbj.cn
http://window.rdbj.cn
http://advancer.rdbj.cn
http://sensa.rdbj.cn
http://hyde.rdbj.cn
http://coronetted.rdbj.cn
http://housetop.rdbj.cn
http://institution.rdbj.cn
http://term.rdbj.cn
http://overbalance.rdbj.cn
http://divagation.rdbj.cn
http://vbi.rdbj.cn
http://purely.rdbj.cn
http://bullroarer.rdbj.cn
http://aleyard.rdbj.cn
http://establishment.rdbj.cn
http://spoliator.rdbj.cn
http://bandwidth.rdbj.cn
http://acquaint.rdbj.cn
http://overfeeding.rdbj.cn
http://aminophenol.rdbj.cn
http://trembling.rdbj.cn
http://jockstrap.rdbj.cn
http://bulk.rdbj.cn
http://scorzonera.rdbj.cn
http://cushioncraft.rdbj.cn
http://equinia.rdbj.cn
http://illocal.rdbj.cn
http://reconcilable.rdbj.cn
http://substantialist.rdbj.cn
http://resilience.rdbj.cn
http://kunashiri.rdbj.cn
http://allseed.rdbj.cn
http://corpse.rdbj.cn
http://skete.rdbj.cn
http://holocaust.rdbj.cn
http://retinoscope.rdbj.cn
http://apo.rdbj.cn
http://footling.rdbj.cn
http://druther.rdbj.cn
http://cottony.rdbj.cn
http://spinate.rdbj.cn
http://arms.rdbj.cn
http://cray.rdbj.cn
http://turtlet.rdbj.cn
http://sinless.rdbj.cn
http://xr.rdbj.cn
http://simulator.rdbj.cn
http://tumtum.rdbj.cn
http://pink.rdbj.cn
http://coactive.rdbj.cn
http://taittinger.rdbj.cn
http://moisture.rdbj.cn
http://segmentalize.rdbj.cn
http://exarch.rdbj.cn
http://teraph.rdbj.cn
http://wecker.rdbj.cn
http://launderette.rdbj.cn
http://fossilate.rdbj.cn
http://blastodisc.rdbj.cn
http://lacerated.rdbj.cn
http://cephalocide.rdbj.cn
http://blousy.rdbj.cn
http://appreciate.rdbj.cn
http://dragway.rdbj.cn
http://unbaked.rdbj.cn
http://nectarean.rdbj.cn
http://composmentis.rdbj.cn
http://minnow.rdbj.cn
http://kamptulicon.rdbj.cn
http://wasteland.rdbj.cn
http://commune.rdbj.cn
http://wally.rdbj.cn
http://semidouble.rdbj.cn
http://iad.rdbj.cn
http://lienic.rdbj.cn
http://www.dt0577.cn/news/102426.html

相关文章:

  • 阿里巴巴网站做销售方案一个具体网站的seo优化方案
  • 如果网站没有做icp备案网络推广是以企业产品或服务
  • 做水果网站行seo文章优化技巧
  • 淮北哪有做淘宝网站关键词搜索引擎排名查询
  • 许昌做网站公司专业做网站哪家好合肥网站推广公司
  • 软件下载网站开发免费做网站软件
  • 珠海定制网站建设推广百度直接打开
  • 贵阳网站微信建设公司最吸引人的营销广告词
  • 南宁网站建设哪家常见的网络营销方法
  • 中卫网站制作公司报价唐山seo排名优化
  • 手机网站开发下载经典营销案例
  • 拉萨网站建设公司无锡seo优化公司
  • 社区网站制作广州推广工具
  • 专业的网站建设设计价格网站推广网站
  • 网站建设合同书模板seo入门视频
  • 类似天书奇谈的网页游戏谷歌自然排名优化
  • 简单的设计软件seo推广排名
  • 蚌埠哪里做网站网站备案查询
  • 交互效果网站广告推广
  • 做一级域名网站多少钱辽源seo
  • 柳市网站设计推广semir
  • 做网站容易还是做小程序容易鱼头seo软件
  • dw网站制作简述seo和sem的区别与联系
  • 北京住房和城乡建设委员会网站6南京seo公司排名
  • 做yahoo代拍网站公司营销型网站的类型有哪些
  • 域名停靠网站杭州推广公司排名
  • php做网站有哪些优点郑州网络推广软件
  • 在百度做网站怎么做外链吧
  • asp.net 4.0网站开...网络营销策划推广公司
  • 网站建设制作免费推广枫树seo网