如何暂停线程执行

2023-12-06

如何暂停某些线程的执行。我有 Thread t 并且有两个按钮:暂停和继续。暂停时,我需要暂停线程执行,然后继续线程从之前停止的位置开始执行。听众中应该放什么?


Java 中的线程是协作的,这意味着您不能强制线程停止或暂停,而是向线程发出您想要的信号,然后线程(=您的逻辑)自行执行。

为此,请使用synchronized、wait() 和notify()。

  1. 在要停止的线程中创建一个原子标志(例如布尔字段)。可停止线程在循环中监视此标志。循环必须在内部synchronized block.
  2. 当您需要停止线程(单击按钮)时,您可以设置此标志。
  3. 线程看到标志已设置并调用wait()在一个共同的对象上(可能是它本身)。
  4. 当你想重新启动线程时,重置标志并调用commonObject.notify().
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何暂停线程执行 的相关文章

随机推荐

  • 使用线程睡眠更新 UI

    我正忙于为 Android 设备制作应用程序 现在我正在测试一些东西 我想改变背景颜色有限次 比如说 5 次 每次背景改变时 我希望它在 2 3 秒后再次改变 如果我使用 Thread 类 它会在 Thread 完成后加载整个模板 您看不到
  • 在后面创建数据模板代码

    我正在尝试创建一个用于显示数据的列表框视图 并且希望它包含一个带有 2 列 产品 ID 和产品条形码 数据模板的列表框 我想使用纯 C 代码创建它 或者如果可能的话通过 xaml 加载它 如果我可以创建一个模板 我就可以将 C 作为某种资源
  • 使用 scipy.io.savemat 保存嵌套列表

    这与我的上一个问题有关 可以找到here 我正在处理类似于我在该链接中描述为markerList 的列表的列表 因此是一个具有三个级别的列表 我需要将此信息保存为 mat 文件 但无法将其保存为正确的类型 当使用 scipy io save
  • 带分隔线的进度条

    有人可以向我解释如何实现带有分隔线的进度条 如下图所示吗 对于我正在使用的进度条https github com akexorcist Android RoundCornerProgressBar但这似乎没有分隔符选项 replace Pr
  • Spring Boot 和 JUnit 5 之间的交互——必须使用整体工件而不是个体?

    这个问题之前已经被问过 例如here 但我的观察与之前报道的不一样 我注意到要让 JUnit 5 工作 我必须包含整个 JUnit 5 工件 testImplementation org junit jupiter junit jupite
  • 我应该使用什么正则表达式根据 2 个单词格式和空格分割字符串?

    我正在尝试分割字符串 Chan 0 2 50 0 12 13 92 83 46 Chan 1 2 58 85 92 2 47 9 03 Chan 2 5 00 85 0 33 33 6 64 Chan 3 0 00 0 00 14 41 8
  • 如何获取已删除分区中索引节点在块设备中的偏移量

    在全新安装过程中 我不小心格式化了包含数据的磁盘 我尝试过使用一些工具 最重要的是testdisk 但我没有得到好的结果 看我不成功的帖子在超级用户上 所以我决定阅读一些有关的文档ext2 文件系统结构 我可以获得一些结果 删除的分区有一个
  • 为什么 Emoji 无法在 UITextField 中正确显示?

    当使用以下代码设置表情符号字符时 self textField text ue415 它只是显示为正方形 但是当我从键盘输入表情符号时 它会正确显示 有什么问题 PS 我使用的是IOS 5 1 在旧版本的 iOS 中 表情符号字符全部位于
  • 需要使用正则表达式屏蔽手机号码

    我使用了以下表达方式 replaceAll d d 4 X 在android studio中进行以下操作 Input 1234567809 Expected Output 12XXXXX809 使用上述表达式后得到的输出 XXXXXX780
  • 只能将 str (不是“字节”)连接到 str

    import socket import os user url input Enter url host name user url split 2 mysock socket socket socket AF INET socket S
  • MySQL:仅返回平面/对话消息表中的最后一条消息

    我正在编写一个消息系统 例如 Facebook 的新消息系统 其中两个用户之间的整个来回被视为一次对话 与传统电子邮件相反 传统电子邮件中的每个回复都是单独的消息 或者与 gMail 的对话相反 在 gMail 对话中 回复全部集中在一个对
  • Laravel 9 突变冒号

    在 Laravel 9 中 变异器有不同的实现 下面的例子来自官方文档 protected function firstName Attribute return Attribute make get fn value gt ucfirst
  • MIPS - 实现二叉搜索树

    作为我们的术语项目 我们正在实现一个二叉搜索树 其背后的想法如下 假设 bst 有 3 个节点 10 8 14 其地址表示如下 值 左节点地址 右节点地址 根节点地址 t 400 8 0 0 620
  • 在 pandas 中分解具有不同大小列表列的多列

    我有以下情况 我可能会在 csv 文件中获得 300 列 其中一些是列表参数 50 列 并且它们的大小可能不均匀 包括没有值 Time COL1 COL2 2020 03 13 10 43 00 500 0 0 10 0 20 0 30 0
  • php for循环变量名

    我得到了 100 200 条制作表格规则的代码 但整个时间都在发生同样的事情 我有一个变量 xm3 然后我创建一个列 下一行 我得到 xm2 并制作列 下一行 我得到 xm1 并制作列 所以我的变量将是 xm3 xm2 xm1 xm0 xp
  • Javascript 按大写字符拆分字符串

    在 JavaScript 中如何通过大写字符将字符串拆分为数组 所以我想分开 ThisIsTheStringToSplit into This Is The String To Split 我会这样做 match 像这样 ThisIsThe
  • POST 500(内部服务器错误)ajax,mvc

    我有 ajax 请求将数据发送到我的控制器 它收集我的下拉列表的值 错误是 POST http localhost 65070 form create 500 Internal Server Error 错误的响应是 The require
  • 如何通过phonegap打开iPhone应用程序

    我想从我的phonegap应用程序中打开联系人和日历等iPhone应用程序 我不介意这样做会将我的应用程序置于后台 我可以打开浏览器并使用 window open 但如何打开其他应用程序 eg window open contacts bl
  • 如何在 Android 中避免出现此消息

    我在 android 中收到以下错误消息 完成尚未停用或关闭的游标 数据库 data data com example Recipie databases recipedbase db 表 食谱 查询 从食谱中选择不同的标题 其中标题 My
  • 如何暂停线程执行

    如何暂停某些线程的执行 我有 Thread t 并且有两个按钮 暂停和继续 暂停时 我需要暂停线程执行 然后继续线程从之前停止的位置开始执行 听众中应该放什么 Java 中的线程是协作的 这意味着您不能强制线程停止或暂停 而是向线程发出您想