进程:应用程序的可执行单元
线程:进程的可执行单元
并发:在一个时间段,交替发生多件事情
并行:在同一个时刻,同时发生多件事情
匿名内部类
能够说出实现接口方式的好处
1.任务对象可以重复利用
2.任务和线程是分开的
3.解决单继承的弊端
4.线程池中只能存放实现接口方式的线程对象(Runnable,Callable)
-
能够解释安全问题的出现的原因
线程的调度是抢占式,导致一条线程在操作任务的时候,会被其他线程打断,造成"数据混乱" -
能够使用同步代码块解决线程安全问题
synchronized(锁对象){}
锁对象:
1.可以是任意类的对象
2.多条线程要实现同步,那么这多条线程的锁对象要一致 -
能够使用同步方法解决线程安全问题
格式: 方法的返回值类型前面加上synchronized
锁对象:
1.非静态同步方法:锁对象是this
2.静态同步方法:锁对象是当前方法所在的类的字节码对象 类名.class -
能够说出volatile关键字的作用
解决可见性,有序性问题
保证某条线程修改了共享变量,对其他线程是可见的,并且可以保证编译器不重排 -
能够说明volatile关键字和synchronized关键字的区别
1.volatile关键字只能修饰成员变量, synchronized关键字可以修饰代码块,方法
2.volatile可以解决解决可见性,有序性问题,synchronized关键字都可以解决
3.volatile关键字修饰的共享变量,某条线程修改数据,对其他线程是可见,synchronized关键字实现的是互斥效果 -
能够理解原子类的工作机制
CAS机制:比较并交换
1.拿主内存中的值和从主内存中获取的值进行比较,
2.如果相同,就进行修改操作,写回主内存
3.如果不相同,又得重新从主内存中获取值,再进行比较操作.... -
能够掌握原子类AtomicInteger的使用
AtomicInteger();
AtomicInteger(int value);
getAndIncrement() 自增1 -
能够描述ConcurrentHashMap类的作用
线程安全 -
能够描述CountDownLatch类的作用
通过计数器允许一个或多个线程等待其他线程完成操作。 -
能够描述CyclicBarrier类的作用
让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。 -
能够表述Semaphore类的作用
控制线程并发数量 -
能够描述Exchanger类的作用
2条线程之间进行数据交换
线程池