红黑网站模板asp网站开发实例pdf

web/2025/9/29 22:50:05/文章来源:
红黑网站模板,asp网站开发实例pdf,装修之家网,青岛商家都上什么网站一直以来#xff0c;用Java管理操作系统进程都是一项艰巨的任务。 这样做的原因是可用的工具和API较差。 老实说#xff0c;这并非没有道理#xff1a;Java并非出于此目的。 如果要管理OS进程#xff0c;则可以使用所需的Shell#xff0c;Perl脚本。 对于面临更复杂任务的… 一直以来用Java管理操作系统进程都是一项艰巨的任务。 这样做的原因是可用的工具和API较差。 老实说这并非没有道理Java并非出于此目的。 如果要管理OS进程则可以使用所需的ShellPerl脚本。 对于面临更复杂任务的大型应用程序应该使用C或C 编写该问题。 当您真的必须从Java管理流程时您必须创建依赖于操作系统的代码。 有可能您可以查询一些环境变量然后可以根据操作系统实现不同的行为。 这种方法在Java 8之前都可以使用但是它有几个缺点。 测试成本更高开发更复杂。 随着Java的性质日趋广泛和广泛普及对此类应用程序的需求也随之增加。 例如我们可以清楚地看到2011年在StackOverflow上提出的问题https://stackoverflow.com/questions/6356340/killing-a-process-using-java有十万多个视图。 一些应用程序以及某些开发人员都需要针对此问题的解决方案这实际上是解决方案而不是解决方法。 在这种情况下在JDK中提供API是一种解决方案。 它不会使进程处理OS独立。 操作系统不同进程处理是与操作系统密切相关的领域。 但是代码的系统相关部分移至JDK运行时并且Java开发团队对其进行测试而不是对应用程序进行单独测试。 它减轻了测试方面的负担。 此外由于该API已经存在因此开发变得更加便宜我们不需要针对BSDOSXLinux和Windows对其进行单独编程更不用说OpenVMS了。 最后应用程序可能运行得更快。 再举一个例子。 如果我们需要正在运行的进程的列表那么我们必须启动一个外部进程该进程将进程列表转储到标准输出中。 此过程的输出必须捕获并分析为字符串。 现在随着Java 9的到来我们将有一个简单的调用该调用是通过调用适当的操作系统调用实现的它不需要执行单独的进程也不需要解析字符串输出来获取Java已经不存在了。 要了解有关Java 9流程处理的所有详细信息您可以阅读URL http://download.java.net/java/jdk9/docs/api/overview-summary.html上当前可用的文档或者您可以很快阅读Packt的《 精通Java 9 》一书 网址为https://www.packtpub.com/application-development/mastering-java-9 其中我撰写了有关流程处理的章节。 在本文中我将讨论一些问题为什么我们需要新的类ProcessHandle对于那些对操作系统过程以及操作系统如何工作没有太多经验的开发人员来说这可能不是很明显。 处理句柄 简而言之 ProcessHandle的实例代表一个操作系统进程。 所有操作系统都使用PID一个TLA缩写“进程标识符”标识活动进程。 这些是小或那么小的整数。 某些操作系统可能会使用其他名称例如名称或一些神秘的字符串但它们却没有使用。 没有好处而且碰巧所有人都使用数字来标识流程。 当我们以面向对象的方式编程时我们会抽象问题以便更好地解释我们建模的问题。 但是有一条规则就是我们不应使模型比问题本身更抽象。 这只是给应用增加了不必要的复杂性增加了成本。 在这种情况下使用int标识进程似乎是显而易见的或完全无视。 如果操作系统不做得更抽象那为什么要这么做呢 仅仅因为在Java中一切都是对象 顺便说一句不是。 原因是PID和ProcessHandle实例之间没有一对一的匹配。 让我们重新阅读本节的前两个句子 “…ProcessHandle代表操作系统进程。 所有操作系统都使用PID来识别活动进程……” 第二句话中只有一个单词“活着”相信我这会有所作为。 尽管我们没有直接的直接比较但活着与死是非常不同的。 ProcessHandle实例可以保留对已从内存中擦除的进程的引用。 想象一下这样一种情况您查看Linux上发出“ ps –ef ”命令的进程列表然后看到Tomcat正在吞噬CPU并且消耗的内存越来越多这很可能是因为所部署的应用程序存在错误循环。 您决定终止该进程以便查看所显示的pid如果pid恰好是666 则发出命令“ kill -9 666 ”。 到那时该进程已经耗尽了操作系统可能拥有的所有内存并且由于您没有在计算机上配置任何交换文件因此JVM消失了没有任何跟踪。 杀死进程将抱怨没有定义的pid的进程。 也可能是操作系统已经启动了一个完全不同的进程而该进程恰好具有该pid。 有没有发生过 现在您摇了摇头这是因为在您的练习中从未发生过。 默认情况下在Linux上他的最大pid数是32768。 实际上时间不长但通常不会太长以至于在发出“ ps ”和“ kill ”命令之间可以重新使用pid。 如果小型嵌入式系统将/proc/sys/kernel/pid_max设置为较小会发生什么。 说的更小例如适合四个位的16 当您以交互方式发出命令时这可能不是一个大问题因为您在那里并且如果系统崩溃则可以在需要时重新启动进程或整个系统。 如果您犯了“错误”则可以采取纠正措施。 Java应用程序不是那么智能即使在嵌入式系统中我们也没有机会杀死我们不想要的进程。 基于pid的流程处理 为了处理这种情况Java具有接口ProcessHandle 。 除了pid之外我们还有ProcessHandle 。 如果我们需要当前正在运行的进程JVM的ProcessHandle 则可以调用静态方法ProcessHandle::current 请注意我使用了漂亮的Java 8方法句柄表示法。 您可以在ProcessHandle实例上获取调用getPid()的当前进程的pid但过一会儿您将无法执行此操作。 想要进程的pid只是一个老习惯。 有手柄时就不需要它。 当您具有流程句柄时说出processHandle您可以获取一个调用processHandle.children()的Stream。 这将列出直接的后代过程。 如果要“传递闭包”则不仅要列出子项还要列出子项等等因此必须调用processHandle.descendants() 。 但是如果您真的很贪婪并且想在所有过程中得到帮助该怎么办 然后您应该调用静态方法ProcessHandle::allProcesses 。 流因懒惰而闻名仅在需要时才创建下一个元素。 在进程列表中的情况下它会导致有趣的结果因此在这种情况下数据集中备份的过程流是当一个创建快照children() descendants()或allProcesses()被调用。 现在我们可以处理流程了。 我们该怎么办 我们可以对其进行processHandle.destroy() 也可以调用processHandle.destroyForcibly() 。 根据引用的堆栈溢出文章这就是每个人都想要的。 我们还可以通过调用processHandle.isAlive()来检查分配给该句柄的进程是否仍处于活动状态。 您还可以访问父进程句柄调用processHandle.parent() 。 请注意并非所有进程都有父进程。 当父进程终止时它们中的一个从未拥有过并且任何其他进程可能都是孤立的。 因此此方法的返回值是Optional 。 Java 9在Optional类中具有不错的新功能但这是另外一回事了这里我们重点介绍流程。 如果该进程仍然存在但是我们要等待该进程终止则可以采用一种现代的异步方式来完成它。 我们可以从调用processHandle.onExit()的过程句柄中获取CompletableFuture 该过程将在过程终止时完成。 Java 9在CompletableFuture类中也具有新功能但这是另外CompletableFuture了这里我们将重点放在流程上。 我会重演吗 ProcessHandle接口内部有一个称为Info的接口。 我们可以从流程句柄中调用processHandle.info()获得信息的实例。 通过此实例我们可以访问参数作为可选字符串数组访问命令行作为可选字符串访问命令作为字符串以及用户也属于可选字符串。 我们还可以以可选的Instant和Duration形式获取有关启动进程的信息以及有关CPU总使用量的信息。 这些新类是在Java 8中引入的而Java 9具有新功能……好吧它开始变得很无聊。 摘要 所有这些功能我们能做什么 在书中我提到我创建了一个简单的过程控制应用程序。 我不得不在2006年左右用perl创建类似的产品。 它按照配置文件中的描述启动进程如果其中任何一个失败它将重新启动。 但这只是一个例子。 在其他情况下可以方便地进行处理。 您要填写表格并将其转换为PDF。 为此您可以使用命令行参数启动一些文字处理程序。 任务正在排队并且一个接一个地启动以保持合理的性能您最多可以在n个进程中转换可配置的n个文档。 如果某个过程花费的时间太长您将其杀死则将有关该消息的信息发送给启动请求的人员到您的转换服务器并安排其在夜间或更不繁忙的时段运行。 我们可以使用Java开发此类程序而无需使用外部shellpython或perl脚本这只会使项目更简单更便宜。 翻译自: https://www.javacodegeeks.com/2017/07/process-handling-java-9.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

媒体电商概念教程推广优化网站排名

最近在做Linux 环境下的一个运行管理通用脚本,用来管理我的Java 小程序启动、停止等操作。虽说这些可以用手敲命令的方式实现,也不复杂,但程序员么,不就喜欢封装点代码,减少操作啥的。先讲下脚本的主要逻辑&#xff0c…

电子商务网站流程设计石家庄建网站

System.out.printf() 是在JDK1.5版开始引入的方法,即在JDK1.5以后的版本才可以使用此函数,printf 方法有 printf(String format, Object ... args) 和 printf(Locale l, String format, Object ... args) 两种重载方式。其实学过C语言的小伙伴应该会觉得…

宁波英文网站建设wordpress 推荐 主题

一、计算机网络体系 (1)OSI分层 (7层) 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 (2)TCP/IP分层(4层) 网络接口层、 网际层、运输层、 应用层。 &#xff0…

网站域名什么意思法治建设的网站

MantisBT 是一款基于 Web 的开源缺陷跟踪系统,以下是在 Windows 10 上安装部署 MantisBT 的详细步骤: 1. 安装必要的环境 MantisBT 是一个基于 PHP 的 Web 应用程序,因此需要安装 Web 服务器(如 Apache)、PHP 和数据…

建设银行官方网站下载低代码app开发平台

目录 一、为什么需要带有 subscribe 的 group.id二、我们需要使用commitSync手动提交偏移量吗?三、如果我想手动提交偏移量,该怎么做? 一、为什么需要带有 subscribe 的 group.id 消费概念: Kafka 使用消费者组的概念来实现主题的…

网站商城建设合同免费下载莱芜最好的网站建设公司

网络基础知识 桥接网络 桥接网络是一种网络设计技术,其目的是将两个或多个网络段连接在一起,使它们在逻辑上表现为单个网络。这通过使用网络桥来实现,网络桥工作在数据链路层(第2层),只关心MAC地址&#…

网站搭建准备王野天演员

目录 云原生-Docker安全-容器逃逸&系统内核漏洞 云原生-Docker安全-容器逃逸&docker版本漏洞 CVE-2019-5736 runC容器逃逸(需要管理员配合触发) CVE-2020-15257 containerd逃逸(启动容器时有前提参数) 云原生-Docker安全-容器逃逸&CDK自动化 知识点&#xff1…

查企企官网seo 优化教程

MediaStream方法 MediaStream.addTrack( ) 功能:向流媒体中加入不同的轨 MediaStream.removeTrack( ) 功能:从流媒体中移除不同的轨 MediaStream.getVideoTracks( ) 功能:从流媒体中取出所有的视频轨 MediaStream.getAudioTracks( …

在百度怎么免费制作网站wordpress区别

链表有环的情况一般是链表的尾指向前面的节点而不是null,如head->node1->node2->node3->node4->tail->node2,该链表存在环。判断环是否存在可以借助两个指针,一个指针每次迭代只移动一步,第二个指针每次迭代移动…

wordpress站点信息修改版权html大学设计论文

Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享一个开发者不得不安装的一些插件,而关于 Vim 的简介,主题的选择,以及为何使用 vim-plug 来管理插件等内容&…

建设官方网站企业网站宜昌市水利建设工程协会网站

一、nova介绍: Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的。用途与功能 :1) 实例生命周期管理2) 管理计算资源3) 网络和认证管理4)REST…

计划书网站推广的目录怎么做深圳大鹏新区葵涌街道

✍面向读者:所有人 ✍所属专栏:零基础入门VUE专栏https://blog.csdn.net/arthas777/category_12537076.html 目录 v-modelVue 中的 指令 Vue 中的组件 没有构建步骤 随着构建步骤 注册 VUE 组件 Vue 道具 VUE 中的道具声明 在 VUE 中传递 PROP…

淄博手机网站建设小说网站违法吗

目录 开头 1.webmin文件泄露漏洞利用-/etc/passwd/ 2.ssh免密登录-私钥伪随机数碰撞: ssh免密登录原理: prng伪随机数生成ssh rsa 私钥公钥密码库 openssl和openssh的关系: ssh登录报错-解决思路-vv 3.提权-内核提权-shellshock提权 内…

免费文档模板素材网站做网站的上海公司有哪些

网上有很多关于使用win10-ssh客户端登录linux-ssh服务端的介绍,但很少介绍多台win10-ssh服务端之间互访的。以下记录如何免密登录win10-ssh服务。1、安装OpenSSH。网上有很多介绍通过添加win10可选功能安装openssh,此处不赘述。如果通过添加可选功能出现…

网站开发阳江招聘网前程无忧

对于优化人员来说,网站在做优化时都会在网站关键词或长尾词上添加锚文本,锚文本又称锚文本链接,是链接的一种形式。那么描文本的添加对网站优化都有什么好处呢?下面一起来了解一下。一、锚文本为网站传递权重在更新网站内容时&…

网站推广的方式有哪个小说网站可以做封面

1、接口的泛型 例如List<数据类型>&#xff0c;在创建接口的时候可以通过传不同的类型&#xff0c;进行使用。 如果需要对一些类型进行一些相同的类似于增删改查的操作&#xff0c;那么可以用泛型来简化&#xff0c;只需要将需要操作的类型传入即可。 需要注意的是泛型…

湖南邵阳调整多个风险区国外企业网络会议的组织与优化

11 月开始突发奇想&#xff0c;想把自己在公司内部做的技术培训、平时的技术总结等等的内容分享出来&#xff0c;于是就开通了一个 Wechat 订阅号&#xff08;灸哥漫谈&#xff09;&#xff0c;开始同步发送内容。 今天&#xff08;12 月 10 日&#xff09;也同步在 CSDN 上开通…

商城网站建设流程侵入别人的网站怎么做

问题描述: 当我要比较电脑的MAC地址的时候,出现了使用ifconfig查看到的地址,和Qt使用QNetInterface获取的MAC地址有着大小写的区别。 解决办法: 方法一: 可以使用QString类的compare()函数,并将第三个参数设置为Qt::CaseInsensitive。下面是一个示例代码: #include &…

创意网站建设公司jsp网站建设项目实战课后

这两天在做一个数据库的项目&#xff0c;用到了mysql&#xff0c;需要通过外部的ip远程访问mysql&#xff0c;发现默认的mysql是不允许远程访问的&#xff0c;需要做简单的配置。 如下&#xff1a; 1. 打开一个终端&#xff08;cmd&#xff09;输入 mysql -u用户名 -p密码 #&am…

vps 做镜像网站淘宝美工培训班怎么样

内容大纲&#xff1a; RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java、分布式、队列模型的开源消息中间件&#xff0c;前身是MetaQ&#xff0c;是阿里研发的一个队列模型的消息中间件&#xff0c;后开…