判断线程结束的方法?

问题描述

判断线程结束的方法?
    一个定时服务,要同时开启3个线程。但是要其中指定的2个线程结束后程序才能继续后面的操作。用什么方法阻塞,并判断线程结束最好?

解决方案

用线程同步可以实现呀

解决方案二:

不知道你问的是Java还是C 如果是java的话 那么线程中有wait()和signal()需要改变值的地方进行加锁然后 使用静态全局变量 控制判断之前的两个线程是否执行完了 如果执行完了那么 signal()唤醒等待队列
如果是C的话使用的是信号量机制 然后还有时间控制 具体的方法名字很长我忘记了你可以查一查
希望对你有帮助。

时间: 2024-11-16 13:19:35

判断线程结束的方法?的相关文章

C#读取二进制文件及判断文件结束的方法

网上资料中很多是通过try catch 获取文件是否读取完毕. 总觉着这种捕获异常的方式太丑陋.于是找到了另外一种更好的方式. 可直接判断文件结束. FileStream fs = File.OpenRead(path); BinaryReader brReader = new BinaryReader(fs); while (brReader.BaseStream.Position < brReader.BaseStream.Length) { //TODO } brReader.Close(

python中readline判断文件读取结束的方法_python

本文实例讲述了python中readline判断文件读取结束的方法.分享给大家供大家参考.具体分析如下: 大家知道,python中按行读取文件可以使用readline函数,下面现介绍一个按行遍历读取文件的方法,通过这个方法,展开我们要讨论的问题: 复制代码 代码如下: filename = raw_input('Enter your file name')  #输入要遍历读取的文件路径及文件名 file = open(filename,'r') done = 0 while not  done:

main-java 子线程结束结束 内部子线程也结束 具体看代码注释

问题描述 java 子线程结束结束 内部子线程也结束 具体看代码注释 import java.util.ArrayList; import org.junit.Test; /** 代码很简单的 就是起了一个线程 然后在一个list里面放了1000个数字 然后打印以下 但是test方法 用junit起的 不能完全打印 而main可以 最终是想要使得这个test方法能和main的效果一样 * */ public class TestSub { @Test public void test() { /

java自定义线程模型处理方法分享_java

看过我之前文章的园友可能知道我是做游戏开发,我的很多思路和出发点是按照游戏思路来处理的,所以和web的话可能会有冲突,不相符合. 来说说为啥我要自定义线程模型呢? 按照我做的mmorpg或者mmoarpg游戏划分,线程被划分为,主线程,全局同步线程,聊天线程,组队线程,地图线程,以及地图消息分发派送线程等: 一些列,都需要根据我的划分,以及数据流向做控制. 游戏服务器,主要要做的事情,肯定是接受玩家的 命令请求 -> 相应的操作 -> 返回结果: 在服务器端所有的消息都会注册到消息管理器里,然

虚拟机-java如何得到线程结束的通知

问题描述 java如何得到线程结束的通知 java是如何知道某一个线程即将死掉的.虚拟机结束改线程.是注册监听器吗?求大神解答 解决方案 线程执行完了自动结束了,目前好像还没有方法对线程进行监听吧,或许你可以在执行的方法里写一个标记,监听这个标记 解决方案二: runnable 现成结束不通知,但是 run方法运行到最后一行就算结束了. Callable 也可是实现通知. MyCallable task2 = new MyCallable(1); MyCallable task3 = new M

[Java] 线程同步的方法:sychronized、lock、reentrantLock分析

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! 如果你向一个变量写值,而这个变量接下来可能会被另一个线程所读取,或者你从一个变量读值,而它的值可能是前面由另一个线程写入的,此时你就必须使用同步. sychronized  Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码,它是在 软件层面依赖JVM实现同步.  synchronized 方法或语句的使用提供了对与每个对象相关的隐式监视器锁的访问,但却强制所有锁获取和释放均要出现在一

C#使用二分查找法判断指定字符的方法_C#教程

本文实例讲述了C#使用二分查找法判断指定字符的方法.分享给大家供大家参考,具体如下: private int sort_init(ref string[] chars, string str) //数组初始化 { string[] temp = str.Split(' '); //temp. chars = new string[temp.Count()]; int ndx = 0; int last_empty_positon = 0; foreach (string ch in temp)

C#简单判断字符编码的方法_C#教程

本文实例讲述了C#简单判断字符编码的方法.分享给大家供大家参考,具体如下: public static string GetText(byte[] buff) { string strReslut = string.Empty; if (buff.Length > 3) { if (buff[0] == 239 && buff[1] == 187 && buff[2] == 191) {// utf-8 strReslut = Encoding.UTF8.GetStr

关于Java中停止线程执行的方法总结

Java中停止线程执行的方法 一.暂停或停止线程的理论 在Java编程中,要暂停或停止当前正在运行的线程,有几种方法.对于把线程转入睡眠Sleep状态,使用Thread.sleep()是最正确的方式.或许有人会问,为什么不使用等待wait()或通知notify()?要知道,使用等待或通知都不是很好的方式.线程可以使用等待wait()实现被阻塞,这属于条件等待的方式,当条件满足后,又会从阻塞转为等待状态.尽管可以在等待wait()条件那里放一个超时设置,但等待wait()的设计目的不是这样的,等待