java同步机制

线程安全-同步锁

在多个线程同时对一个数据进行操作的情况下,产生数据的安全
被多个线程共同操作的数据称之为共享数据/共享资源

可以使用同步机制解决线程安全问题

关键字: synchronized

  • 将整个指定的语句块做为一个不可分割的整体来执行

  • 可以修饰方法

  • 也可以修饰语句块

synchoized(Object){
   需要同步实现的语句块
}

每一个对象都有一个对象锁标记

生产者与消费者问题
生产者线程只负责生产数据
消费者线程只负责消耗数据

生产者不停地生产(随机数表示)
消费者不停消费(随机数表示)

定义一个类(共享资源)

当消费的数量大于已生产的数量时, 让消费者线程暂停, 生产者线程继续

Object

wait(): 让当前线程进入等待状态
notify(): 通知/唤醒因为调用wait方法进入等待状态的线程

线程完整状态

  1. 创建
  2. 就绪
    阻塞、等待池、对象锁池
  3. 运行
  4. 结束

N个线程:线程池

  • 实现线程方式:
    1. 实现 Runnable 接口, 重写 run() 方法

    2. 继承 Thread 父类

    3. 实现 Callable 接口, 重写 call() 方法
      – 可以有返回值
      – 可以声明抛出异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值