当前位置: 首页 > 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.hkea.cn/news/14519071/

相关文章:

  • 深圳市官网网站建设报价数据分析培训机构哪家好
  • 网站域名备案 更改吗最近最新手机中文大全8
  • 适合做外链的网站wordpress同步到微信
  • 南京电商网站设计公司山西教育学会网站建设
  • 公司内部网站系统工业和信息化部反诈中心发短信
  • 甘孜网站建设网上商城系统流程图
  • 做队徽的网站ckplayer wordpress
  • 网站建设合同有哪些wordpress邮箱链接无效
  • 如何远程连接 网站 数据库大一期末网页设计作业
  • wordpress修改域名登录后台seo网络优化教程
  • 网站建设用什么软件大连响应式网站
  • 做电影网站哪个系统好个人网站备案名称大全
  • 深圳网站建设服务清单苏州网页设计费用
  • 摄影网站设计报告资深网页设计师0经验培训
  • 企业网站建设包含哪些内容建设网站是主营成本吗
  • 网站怎么做弹出表单华为软件开发工程师月薪多少
  • 广州市城乡和建设局网站杭州网站建设怎么样
  • 红色网站 推荐免费的源码分享网站
  • 6东莞做网站开放平台是干什么的
  • 行业网站建设方案成都网页设计公司推荐
  • 做58招聘网站工作人员的心得wordpress搬家 登录报错
  • 奢做品二手 哪个网站好酒店 深圳 网站建设
  • 公司注册地址和经营地址搜索引擎优化的实验结果分析
  • 常州转化率网站建设公司怎么样天津全包圆装修公司电话
  • 定远县可以做网站的地方上海找做网站公司
  • 锦州网站建设推广锡山区企业网络推广
  • 直播网站开发方案ppt市场营销策略模板
  • 上海网站建设口碑最好的公司做网站公司上什么平台
  • photoshop设计一个精美的网站主页北京的网页设计
  • 怎么做seo网站推广谁做网站收录