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

做ppt的素材网站百度指数查询移动版

做ppt的素材网站,百度指数查询移动版,企业网站空间如何选择才靠谱,成都淮州新城建设投资有限公司网站在JavaFX中,要实现点击按钮启动多个周期性任务并通过多线程执行,并在任务结束后将结果写入多个文本组件中,同时提供另一个按钮来停止这些任务,你可以使用ScheduledExecutorService来管理周期性任务,并使用AtomicBoolea…

在JavaFX中,要实现点击按钮启动多个周期性任务并通过多线程执行,并在任务结束后将结果写入多个文本组件中,同时提供另一个按钮来停止这些任务,你可以使用ScheduledExecutorService来管理周期性任务,并使用AtomicBoolean来控制任务的执行与停止。

以下是一个简化的示例,展示了如何实现这一功能:

  1. 设置JavaFX界面:包括两个按钮(一个启动,一个停止)和多个文本区域(用于显示结果)。
  2. 创建周期性任务:这些任务将周期性地执行,并在完成时更新UI。
  3. 管理线程:使用ScheduledExecutorService来调度任务,并使用AtomicBoolean来安全地控制任务的执行。

示例代码

import javafx.application.Application;
import javafx.application.Platform;
import javafx.concurrent.Task;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;public class TaskSchedulerExample extends Application {private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);private AtomicBoolean running = new AtomicBoolean(false);@Overridepublic void start(Stage primaryStage) {TextArea textArea1 = new TextArea();TextArea textArea2 = new TextArea();Button startButton = new Button("Start Tasks");startButton.setOnAction(e -> {running.set(true);scheduleTask(() -> updateTextArea(textArea1, "Task 1 result: " + System.currentTimeMillis()), 1, TimeUnit.SECONDS);scheduleTask(() -> updateTextArea(textArea2, "Task 2 result: " + System.currentTimeMillis()), 2, TimeUnit.SECONDS);});Button stopButton = new Button("Stop Tasks");stopButton.setOnAction(e -> running.set(false));VBox root = new VBox(10, startButton, stopButton, textArea1, textArea2);Scene scene = new Scene(root, 300, 200);primaryStage.setTitle("Task Scheduler Example");primaryStage.setScene(scene);primaryStage.show();}private void scheduleTask(Runnable task, long period, TimeUnit timeUnit) {scheduler.scheduleAtFixedRate(() -> {if (running.get()) {task.run();} else {// 停止调度scheduler.shutdownNow();}}, 0, period, timeUnit);}private void updateTextArea(TextArea textArea, String text) {Platform.runLater(() -> {textArea.appendText(text + "\n");});}public static void main(String[] args) {launch(args);}
}

说明

  • UI组件TextArea用于显示任务结果,Button用于控制任务的启动和停止。
  • 任务调度:使用ScheduledExecutorServicescheduleAtFixedRate方法来周期性地执行任务。
  • 任务停止:通过AtomicBooleanget方法检查是否应该继续执行任务。如果runningfalse,则调用scheduler.shutdownNow()来尝试停止所有正在执行的任务。
  • UI更新:由于JavaFX的UI更新必须在JavaFX应用线程上执行,因此使用Platform.runLater来更新TextArea

请注意,这个示例中的shutdownNow()尝试停止所有任务,但已经启动但尚未完成的任务可能不会被立即停止。如果需要更严格的停止机制,你可能需要在任务内部实现更复杂的逻辑来检查是否应该停止执行。

http://www.zhongyajixie.com/news/1980.html

相关文章:

  • 物业管理系统的设计与实现福州seo优化
  • 南阳专业网站建设手游推广渠道
  • 一个微信可以做两个网站支付域名查询站长工具
  • 河南建设网站官网百度快速收录方法
  • 网站备案丢失百度明星人气榜排名
  • 珠海商城网站制作网站建设山东聚搜网络
  • 网站开发怎样验收seo搜索引擎排名优化
  • 设计效果图怎么做网站优化外包公司
  • 网站管理一般要做什么公司宣传推广方案
  • 荣昌网站建设天津seo培训机构
  • 如何判断网站seo做的好坏厦门人才网个人登录
  • 适合穷人开的小店seo评测论坛
  • 外国网站建设35个成功的市场营销策划案例
  • 怎样做网站域名注册如何进行网络营销策划
  • 想建网站须要什么条件简单的网页设计作品
  • 创手机网站电商培训学校
  • 应用数据库网站开发友情链接图片
  • 做网站要学c语言app拉新怎么做
  • 优化是什么360优化大师安卓手机版下载安装
  • 南京大型门户网站制作最近的重大新闻
  • 秦皇岛软件开发培训seo如何建立优化网站
  • 企商百度网站建设seo关键词优化推广价格
  • 网站开发href使用本地链接西安seo网站优化
  • 企业网站建设市场报价bt种子万能搜索神器
  • wordpress $wp_query温州seo顾问
  • 哈尔滨企业网站网络营销软件
  • 徐州教育平台网站建设新东方考研培训机构官网
  • 用织梦做网站能练技术吗百度一下百度网页官
  • 网站内容管理流程图跨境电商关键词工具
  • 谷歌seo优化排名中国十大seo