线程安全
当使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题,但是如果多个线程中对资源有读和写的操作,就容易出现线程安全问题。
要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,Java中提供了同步机制。
(synchronized)来解决。
(1)编写例子演示线程安全问题
- 模拟 3个售票员 卖 30张票
第一步 创建资源类,在资源类定义属性和操作方法
第二步 在资源类操作方法进行 判断 干活
第三步 创建多个线程,使用多个线程调用资源类的操作方法
public class Test {
public static void main(String[] args) {
Ticket ticket = new Ticket();
new Thread(new Runnable() {
@Override
public void run() {
// try {
// Thread.sleep(100);
// } catch (InterruptedException e) {
// e.printStackTrace();