并发和并行的概念
并发:在同一时间段上同时执行,是通过一个cup进行切换完成任务
并行:在同一时间点上同时执行,是通过多个cpu同时干活完成任务
并发和并行都是通过线程实现
线程是什么,进程是什么
进程:运行中的应用程序;如qq,微信等软件
线程:运行程序中的一个顺序控制流程,也是CPU中的最小调度单位;
线程使用方式
Thread:创建方式
class ThreadA extends Thread {
@Override
public void run() {
System.out.println("Thread");
}
}
Thread和Runnable区别:
1、Thread是一个类,Runnable是一个接口
2、Thread底层会真正创建一个线程,但Runnable不会去创建线程,它只是个任务,如果需要执行任务还是需要Thread去实现多线程来完成这个任务
Runnable:创建方式
class RunnableB implements Runnable {
@Override
public void run() {
System.out.println("Runnable");
}
}
Runnable和Callable区别:
1、Runnable的任务是没有返回值,而Callable是可以有返回值
2、Callable是支持异常往外抛,而Runnable是不支持异常往外抛,只能在run方法内捕获异常
Callable:创建方式
class CallableC implements Callable {
@Override
public Object call