多线程
进程和线程
进程是资源分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为他分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为他分配cpu时间,程序---运行---消亡。开始真正运行,一个应用程序可以同时运行多个进程。
线程是一条执行路径,是程序执行时间的最小单位,是进程内部的一个独立的执行单元,一个进程可以同时并发多个线程,线程共享进程的所有资源,每个线程有自己的堆栈和局部变量。
并行与并发:
并行:指两个或多个事件在同一时刻发生(同时发生)。
并发:指两个或多个事件在同一时间段内发生。
创建线程方式:
1.自定义类:继承Thread类,重写run方法,无返回值。
2.自定义实现接口Runnable,重写run方法,无返回值。
3.自定义类实现接口Runnable,重写call方法,有返回值。
对多条操作共享的数据的语句,让一个线程都执行完,执行过程中其他线程不可以参与执行。
1.同步代码块
synchronized(对象){
//需要被同步的代码
}
2.synchronized还可以放在方法的声明中,表示整个方法为同步方法;
public sychronied void show(String name){
}