线程和进程的区别
进程是正在运行的程序的实例,进程中包含了线程,每个线程执行不同的任务
不同的进程使用不同的内存空间,在当前进程下所有线程可以共享内存空间
线程更加轻量,线程切换比进程切换开销低
并行和并发的区别
在多核cpu下 并发是同一时间应对多件事情,多个线程轮流使用一个或多个cpu
并行是同一时间动手做多件事情的,四核cpu同时执行四个线程
创建线程的方式
集成Thread类
实现runnable接口
实现Callable接口
线程池创建线程
runnable 和 callable区别
runnable接口run方法没有返回值
callable接口call方法有返回值,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果
callable接口的call()方法允许抛出异常,而Runnable接口的run()方法的异常只能在内部消化,不能继续上抛
run()和start()的区别
start:用来启动线程,通过该线程调用run方法执行run方法中所定义的逻辑代码,只能调用一次
run:封装了要被线程执行的代码,可以被多次调用
线程包含哪些状态,状态之间如何变化
标签:runnable,run,接口,callable,线程,进程,多线程 From: https://www.cnblogs.com/wrf1/p/18436728