码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA多线程

时间:2017-06-11 19:17:13      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:状态   shu   cancel   wait   test   rgs   ati   interrupt   利用   

阻塞状态:

sleep  可中断利用 interrupt方法

wait

IO  不可中断   I:关闭底层资源  II:new I O

任务试图在某个对象上调用其同步控制方法,但是对象锁被另一个任务获取  不可中断


Executor.shutdownNow() 发送一个interrupt() 调用给它启动的所有线程 

如何中断单一任务?

Executor.submit()启动单一任务 该方法返回一个Futrue<?> 类型的参数

利用这个参数的cancel(true)即相当于在该线程上调用interrupt() 


public static void main(String[]args){
        final Test st = new Test();
        new Thread(){
            @Override
            public void run(){
                st.f1(100);
            }
        }.start();
        System.out.println("main is over");
    }
}

刚才写测试用例 突然发现自己对有些概念不是特别明确 比如上面的例子  

我原以为 main线程输出完那句话 整个程序就结束了 其实并非这样

只有当把副线程设置为守护线程的时候 才是我想象的那样

 

JAVA多线程

标签:状态   shu   cancel   wait   test   rgs   ati   interrupt   利用   

原文地址:http://www.cnblogs.com/luyu1993/p/6985788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!