Java并发编程从入门到精通 之 第二章 认识Java里面的Thread
创建线程三种方法:
-1 直接 extends Thread 覆盖 run() 方法
-2 实现Runnable接口,实现run()方法
-3 实现Callable接口,实现call()方法
//假设ThreadC 继承了Callable接口
FutureTask<String> f = new FutureTask<String>(threadC);
new Thread(f).start();


线程的中断机制:
-1 Thread.stop();  强制停止线程,不安全,不再建议使用。
-2 Thread.interrupt(); 一种中断机制,不会直接中断,而是讲线程中的中断标识设置为true。然后让当前线程自己处理中断。
-- interrupted();测试线程是否已中断,并清除中断状态。
-- isInterrupted();测试线程是否已中断
-- interrupted(); 设置线程中断状态为true
如果线程处于可中断状态,然后调用了sleep或wait()会抛出InterruptedException,这时不执行Thread.interrupted()则会导致处理IO资源时,资源关闭。

线程的生命周期:


守护线程:
setDeamon(boolean on); 设置

线程组:线程组可控制组内线程同时操作,如设置优先级。



当前线程副本:ThreadLocal
空间换时间,为每个使用该变量的线程提供独立的变量副本,从而互不影响。
-1 方法:threadLocal.set(xx) , xxx.get(),xx.remove(),  initialValue()初始化值
private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer >() {
    public Integer initialValue() {
        return 0;
    }
};
线程用完该变量后remove调。。
-2 实现原理:
内部维护一个线程相关的 ThreadLocalMap 


线程异常的处理:
线程的异常应由线程自行处理,并在run方法内部try catch处理掉。
对于unchecked exception,则应实现UncaughtExceptionHandler接口处理。






















阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28666081/article/details/79967798
个人分类: JAVA
想对作者说点什么? 我来说一句

Java并发编程从入门到精通

2017年07月19日 31.53MB 下载

java并发编程从入门到精通

2018年03月26日 93.38MB 下载

java 并发编程从入门到精通.pdf

2018年03月14日 93.41MB 下载

JAVA从入门到精通实例源程序

2017年11月10日 10.4MB 下载

没有更多推荐了,返回首页

不良信息举报

Java并发编程从入门到精通 之 第二章 认识Java里面的Thread

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭