博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]实战Java多线程编程精要之高级支持
阅读量:2448 次
发布时间:2019-05-10

本文共 940 字,大约阅读时间需要 3 分钟。

实战Java多线程编程精要之高级支持
线程组
  线程是被个别创建的,但可以将它们归类到线程组中,以便于调试和监视。只能在创建线程的同时将它与一个线程组相关联。在使用大量线程的程序中,使用线程组组织线程可能很有帮助。可以将它们看作是计算机上的目录和文件结构。
  线程间发信
   当线程在继续执行前需要等待一个条件时,仅有 synchronized 关键字是不够的。虽然 synchronized 关键字阻止并发更新一个对象,但它没有实现线程间发信。Object 类为此提供了三个函数:wait()、notify() 和 notifyAll()。以全球气候预测程序为例。这些程序通过将地球分为许多单元,在每个循环中,每个单元的计算都是隔离进行的,直到这些值趋于稳定, 然后相邻单元之间就会交换一些数据。所以,从本质上讲,在每个循环中各个线程都必须等待所有线程完成各自的任务以后才能进入下一个循环。这个模型称为 屏蔽同步,下例说明了这个模型:
  屏蔽同步
237771.gif 数 notify() 只通知一个正在等待的线程,当对每次只能由一个线程使用的资源进行访问限制时,这个函数很有用。但是,不可能预知哪个线程会获得这个通知,因为这取决于 Java 虚拟机 (JVM) 调度算法。
  将 CPU 让给另一个线程
  当线程放弃某个稀有的资源(如数据库连接或网络端口)时,它可能调用 yield() 函数临时降低自己的优先级,以便某个其他线程能够运行。
  守护线程
   有两类线程:用户线程和守护线程。用户线程是那些完成有用工作的线程。 守护线程是那些仅提供辅助功能的线程。Thread 类提供了 setDaemon() 函数。Java 程序将运行到所有用户线程终止,然后它将破坏所有的守护线程。在 Java 虚拟机 (JVM) 中,即使在 main 结束以后,如果另一个用户线程仍在运行,则程序仍然可以继续运行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-132162/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-132162/

你可能感兴趣的文章
如何检查已安装的Ubuntu版本
查看>>
如何在Windows 10上禁用附近共享
查看>>
gmail_Gmail将提供自毁电子邮件
查看>>
google 禁止广告_是否应禁止针对个人的广告?
查看>>
Plover.io在本地设备之间快速共享文件
查看>>
如何在OS X照片中禁用iCloud照片同步
查看>>
Minecraft的官方网站分发了受恶意软件感染的皮肤
查看>>
word模板快速填内容_如何快速轻松地在Word中选择内容块
查看>>
如何在Word 2013中直接从一个表导航到另一个表
查看>>
twitch 录像_如何通过NVIDIA GeForce Experience将您的PC游戏玩法传送到Twitch
查看>>
vimrc配置 鼠标光标_在“提示”框中:即时调整窗口大小,包含鼠标光标并了解电池配置...
查看>>
High Sierra推出后如何离开macOS公开Beta
查看>>
如何格式化您的WhatsApp消息
查看>>
pixel2pixel_Pixel 2的视觉核心是什么?
查看>>
更改用户账户设置自动更改_您应该更改的5个SimpliSafe设置
查看>>
netflix怎么上_如何在Netflix上隐藏电视节目和电影
查看>>
opera_从Opera快速拨号页上删除混乱
查看>>
apple pencil_如何在iPad Pro的Apple Pencil上双击动作
查看>>
linux使用命令重命名_如何在Linux上使用重命名命令
查看>>
xcloud下载_Project xCloud是Microsoft在流Xbox游戏上的赌博
查看>>