`
阅读更多
boolean cancel(boolean mayInterruptIfRunning) 方法描述:

/**
     * Attempts to cancel execution of this task.  This attempt will
     * fail if the task has already completed, has already been cancelled,
     * or could not be cancelled for some other reason. If successful,
     * and this task has not started when <tt>cancel</tt> is called,
     * this task should never run.  If the task has already started,
     * then the <tt>mayInterruptIfRunning</tt> parameter determines
     * whether the thread executing this task should be interrupted in
     * an attempt to stop the task.
     *
     * <p>After this method returns, subsequent calls to {@link #isDone} will
     * always return <tt>true</tt>.  Subsequent calls to {@link #isCancelled}
     * will always return <tt>true</tt> if this method returned <tt>true</tt>.
     *
     * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
     * task should be interrupted; otherwise, in-progress tasks are allowed
     * to complete
     * @return <tt>false</tt> if the task could not be cancelled,
     * typically because it has already completed normally;
     * <tt>true</tt> otherwise
     */

但是我实际在进行测试的时候发现,不管传入是 true,还是 false,都会被中断. 这是为啥?


测试代码:

ExecutorService executorService = null;

    {
        executorService = Executors.newFixedThreadPool(2);
    }

@Test
    public void cancleTest(){

        Future<?> submit = executorService.submit(new Run());
        boolean cancel = submit.cancel(false);
        System.out.println("是否被取消: " + cancel);

    }

    @Test
    public void cancleTest002(){

        Future<?> submit = executorService.submit(new Run());
        boolean cancel = submit.cancel(true);
        System.out.println("是否被取消: " + cancel);

    }

class Run implements Runnable{


        public void run() {
            System.out.println("Runable 被执行了...");
            for (long i = 0; i < 10000000000L; i++) {
                System.out.println("iii"+i);
            }
            System.out.println("我是最后一行...");
        }
    }


结果:


Runable 被执行了...
iii0
iii1
iii2
iii3
iii4
iii5
iii6
iii7
iii8
iii9
iii10
iii11
iii12
iii13
iii14
iii15
iii16
iii17
iii18
iii19
iii20
iii21
iii22
iii23
iii24
iii25
iii26
iii27
iii28
iii29
iii30
iii31
iii32
iii33
iii34
iii35
iii36
iii37
iii38
iii39
iii40
iii41
iii42
iii43
iii44
iii45
iii46
iii47
iii48
iii49
iii50
iii51
iii52
iii53
iii54
iii55
iii56
iii57
iii58
iii59
iii60
iii61
iii62
iii63
iii64
iii65
iii66
iii67
iii68
iii69
iii70
iii71
iii72
是否被取消: true
iii73
iii74
iii75
iii76
iii77
iii78
iii79
iii80
iii81
iii82
iii83
iii84
iii85
iii86
iii87
iii88
iii89
iii90
iii91
iii92
iii93
iii94
iii95
iii96
iii97
iii98
iii99
iii100
iii101
iii102
iii103
iii104
iii105
iii106
iii107
iii108
iii109
iii110
iii111
iii112
iii113
iii114
iii115
iii116
iii117
iii118
iii119
iii120
iii121
iii122
iii123
iii124
iii125
iii126
iii127
iii128
iii129
iii130
iii131
iii132
iii133
iii134
iii135
iii136
iii137
iii138
iii139
iii140
iii141
iii142
iii143
iii144
iii145
iii146
iii147
iii148
iii149
iii150
iii151
iii152
iii153
iii154
iii155
iii156
iii157
iii158
iii159
iii160
iii161
iii162
iii163
iii164
iii165
iii166
iii167
iii168
iii169
iii170
iii171
iii172
iii173
iii174
iii175
iii176
iii177
iii178
iii179
iii180
iii181
iii182
iii183
iii184
iii185
iii186
iii187
iii188
iii189
iii190
iii191
iii192
iii193
iii194
iii195
iii196
iii197
iii198
iii199
iii200
iii201
iii202
iii203
iii204
iii205
iii206
iii207
iii208
iii209
iii210
iii211
iii212
iii213
iii214
iii215
iii216
iii217
iii218
iii219
iii220
iii221
iii222
iii223
iii224
iii225
iii226
iii227
iii228
iii229
iii230
iii231
iii232
iii233
iii234
iii235
iii236
iii237
iii238
iii239
iii240
iii241
iii242
iii243
iii244
iii245
iii246
iii247
iii248
iii249
iii250
iii251
iii252
iii253
iii254
iii255
iii256
iii257
iii258
iii259
iii260
iii261
iii262
iii263
iii264
iii265
iii266
iii267
iii268
iii269
iii270
iii271
iii272
iii273
iii274
iii275
iii276
iii277
iii278
iii279
iii280
iii281
iii282
iii283
iii284
iii285
iii286
iii287
iii288
iii289
iii290
iii291
iii292
iii293
iii294
iii295
iii296
iii297
iii298
iii299
iii300
iii301
iii302
iii303
iii304
iii305
iii306
iii307
iii308
iii309
iii310
iii311
iii312
iii313
iii314
iii315
iii316
iii317
iii318
iii319

望各位大佬们不吝指点下,感谢!

已解决,junit 框架的问题,代码上的注释没有问题.
0
0
分享到:
评论
相关资源推荐
  • Java 通过Future来对任务进行取消       本节我们将通过Java中的Future实现对于提交的任务进行取消。ExecutorService.submit将返回一个Future来描述任务,Future拥有一个cancel方法,该方法带有一个boolean类型的参数mayInterruptIfRunning,表示取消操作是否成功(这个参数只是表示任务是否能够接收中断,而不是表示任务是否能检测并处理中断)。如果mayInterrup...
  • Future取消任务 Future取消任务: **通过Future取消那些不再需要结果的任务: //示例: /** * TimedRun * &amp;lt;p/&amp;gt; * Cancelling a task using Future */ public class TimedRun { private static final ExecutorService TASK_EXEC = Execut...
  • Android(Java)之多线程结果返回——FutureFutureTask、Callable、Runnable
  • https://blog.csdn.net/boyupeng/article/details/49001215
  • Future方式中断线程实现 java future方式实现线程中断
  • 使用Futurecancel()方法来取消已经提交给执行者的任务
  • https://blog.csdn.net/weixin_41700993/article/details/81487207
  • 关于Booleanboolean的说说 最近在公司开发的过程中,由于公司急着提测,将我们开发的追疯了,在开发过程中不小心将boolean敲成了Boolean,在调试的时候报空指针,感觉很奇怪,也没有仔细找,最后叫同事帮忙找,才找到。        自己对Booleanboolean的区别了解,自己就去百度了下,希望这些也能帮助其他的人。         Boolean是一个Java类,也就是说我们用Boolean申明的是一个类,而
  • 关于if(Boolean=Boolean)的问题。。 首先说明下,实际代码是不会这么写的。我是在查一个问题时,看见其他人这么写,然后感兴趣的。。rnrn看代码:rnrn[code=java]rn boolean flag = false;rn boolean flag2 = true;rn rn if(flag =flag2)rn System.out.println("true");rn elsern System.out.println("false");rn rn[/code]rnrnif判断的部分,2个boolean变量,4种组合。rnif(flag=flag):falsernif(flag2=flag2):truernif(flag=flag2):truernif(flag2=flag):falsernrn猜测下,是不是说,这样的写法,只判断赋值符号后面的变量?rn
  • java中Future的应用 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。有了Future就可以进行三段式的编程了,1.启动多线程任务2.处理其他事3.收集多线程任务结果。从而实现了非阻塞的任务调用。在途中遇到一个问题,那就是虽然能异步获取结果,但是Future的结果需要通过isdone来判断是否有结果,...
  • 线程池之Future 线程池任务执行结果 这一节来探讨下线程池中任务执行的结果以及如何阻塞线程、取消任务等等。 1 package info.imxylz.study.concurrency.future; 2  3 public class SleepForResultDemo implements Runnable { 4  5     static boolean result = f
  • java的Boolean类方法学习 1、Boolean valueOf(String s) Boolean.valueOf("true"); //true Boolean.valueOf("false"); //falseBoolean.valueOf("1"); //false Boolean.valueOf("0") //false Boolean.valueOf("TRUE"); //tr
  • 关于java中boolean的使用 刚开始学Java中,我总是搞不清楚关于Boolean的用法, boolean类型是指 真和假 的类型.只有两种值:true和false,我曾经做一个题目 例如:boolean[] bool = new boolean[n];这句是指创建一个布尔型的数据(boolean默认值为false).所以一般Java中boolean中默认值是false, 由于变量bool是布尔数组,所以数组中的某...
  • java-通过Future来取消任务 向ExecutorService提交了任务,并通过定时的Future.get获得结果。如果get终止于一个TimeoutExeception,那么任务是由Future取消的,如果深层计算在取消前就抛出一个异常,在timedRun中会重新被抛出。 Future有一个cancel方法,它需要一个boolean类型的参数,mayInterruptIfRunning,它的返回值表示取消尝试是否成功。...
  • Java基础类—Boolean Boolean类将基本类型为boolean的值包装在一个对象中。public static final Boolean TRUE = new Boolean(true)值true的Boolean对象public static final Boolean FALSE = new Boolean(false)基值false的Boolean对象public static final Class&amp;lt;B...
  • javabean:booleanBoolean类型的getter方法名是有区别的 javaBean中,要设置或获取某个property的值,就需要相应的get和set方法,对于primitive和自定义类类型的属性(如:property),getter和setter方法就是getProperty和setProperty(第一个字母变大写,前面再加get或set)。对于类型为 boolean的属性(不是Boolean),getter方法还可以写为isProperty(getProp
  • Boolean valueOf(boolean b)方法的一个疑问 在域中已经用了[/[code=Java]public static final Boolean TRUE = new Boolean(true);[/code],我断点跟踪,根本就没有进入[code=Java]Boolean(boolean value)[/code]构造器中。rn现在的疑问就是:为什么没有创建对象?
  • JAVA包装类Boolean的使用 对于Boolean类使用了字符串构造方式,并且之后使用了toString()方法将true和false以字符串形式输出。 /** * 对于Boolean类使用了字符串构造方式,并且之后使用了toString()方法将true和false以字符串形式输出。 * @author HAN * */ public class BooleanApps { Boolean b1=new Boole
  • Java中的boolean类型 boolean(布尔)类型有两个值:false和true,用来判断逻辑条件,整型值和布尔值之间不能进行相互转换。 在C++中,数值和指针可以替代boolean,值0相当于布尔值的false,非0表示布尔值的true,在Java中则不能这样。
  • 编码规约之关于Boolean类型成员变量的命名的编码规约
Global site tag (gtag.js) - Google Analytics