0
点赞
收藏
分享

微信扫一扫

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资源时,资源关闭。

线程的生命周期:


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


守护线程:

setDeamon(boolean on); 设置

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

当前线程副本:ThreadLocal

空间换时间,为每个使用该变量的线程提供独立的变量副本,从而互不影响。

-1 方法:threadLocal.set(xx) , xxx.get(),xx.remove(),  initialValue()初始化值

static ThreadLocal<Integer> seqNum = new ThreadLocal<  Integer

initialValue() {


return 0;



}



};

线程用完该变量后remove调。。

-2 实现原理:

内部维护一个线程相关的 ThreadLocalMap 

线程异常的处理:

线程的异常应由线程自行处理,并在run方法内部try catch处理掉。

对于unchecked exception,则应实现UncaughtExceptionHandler接口处理。


举报

相关推荐

0 条评论