多线程

Posted gjzworker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。

一、守护线程

  1. 守护线程设置必须在start之前;如果在start之后,设定为守护线程,设定无效,且如果线程在执行过程中,将会抛出异常:IllegalThreadStateException
  2. 守护线程中创建的线程默认是守护线程,可以更改
  3. Timer是单线程且可以设置为守护线程;GC线程是典型的守护线程

二、Runnable和Callable区别

  1. Runnable需要实现run方法,Callable需要实现call方法
  2. run方法没有返回值,call方法需要有返回值
  3. run方法中的异常只能自己处理,不能抛出;call方法异常可以抛出
  4. 使用Thread创建线程时,Runnable可以直接作为入参或者使用FutureTask封装;Callable只能使用FutureTask封装,不能直接作为入参
  5. 使用ExecutorService创建线程时,Runnable可以直接使用execute或submit执行;Callable只能直接被submit执行,不能被execute执行;两者被FutureTask封装后,两者皆可

三、ThreadGroup

  ????

四、线程同步和线程安全

五、线程池

以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章

什么是多线程,多进程?

多线程和多进程模式有啥区别

多线程Java多线程学习笔记 | 多线程基础知识

java中啥叫做线程?啥叫多线程?多线程的特点是啥

c++ 多线程与c多线程有啥区别?

IOS多线程安全(线程锁)