大家好............... |----------------------->
| 子线程1 |
|<----------------------
主|
|---------------------->
线| 子线程2 |
|<----------------------
|
程|
|
|---------------------->
| 子线程2 |
|<----------------------
|
现在正在做一个Java的Application,遇到了这样一个问题.主线程管理三个子线程,主线程用到了Timer类,定时同时起动三个子线程.现在做好了冷关闭,就是界面按钮按下后,设置一个状态FLAG,主线程时间到了需要启动子线程的时候,发现状态FLAG不能再启动新线程了,但是要等待正在执行中的三个子线程,执行完毕.但是在做热关闭的时候,出现了问题,虽然状态FLAG不能再启动新线程了,但是前面已经开始了的子线程,没办法被杀掉.这个问题困扰着,很郁闷.....前提一,主线程不关闭.
前提二,子线程只运行一次(里没有循环),下次timer到的时候,再启动一个新的子线程.
| 子线程1 |
|<----------------------
主|
|---------------------->
线| 子线程2 |
|<----------------------
|
程|
|
|---------------------->
| 子线程2 |
|<----------------------
|
现在正在做一个Java的Application,遇到了这样一个问题.主线程管理三个子线程,主线程用到了Timer类,定时同时起动三个子线程.现在做好了冷关闭,就是界面按钮按下后,设置一个状态FLAG,主线程时间到了需要启动子线程的时候,发现状态FLAG不能再启动新线程了,但是要等待正在执行中的三个子线程,执行完毕.但是在做热关闭的时候,出现了问题,虽然状态FLAG不能再启动新线程了,但是前面已经开始了的子线程,没办法被杀掉.这个问题困扰着,很郁闷.....前提一,主线程不关闭.
前提二,子线程只运行一次(里没有循环),下次timer到的时候,再启动一个新的子线程.
T1.schedule(XX,XX,XX,XX)------------>启动的线程一--------->运行着......------->运行完回来.想在运行中的时候把线程一杀掉.
以前也做过一个类似的控制线程的东西,这个问题可以这样解决,判断这个子线程是否在运行,如果在运行的话就不用去执行了(或者杀死在运行新的)==>但是问题也随之出现,操作线程!那就要
看LZ用的是社么操作系统,如果是WIN,那只能说SORRY了~~你没法去操作除非你去JNI(主要是没有好的开源的东东).如果是LINUX,那先恭喜一下,你可以执行SHELL来判断线程是否存在,如果数据量过大的话就保存到文本,APP去读文本来判断线程是否已在运行