Runnable接口,synchronized锁

Runnable接口
    步骤:
        1.创建类实现Runnable接口
        2.重写run
        3.创建当前类对象
        4.创建线程Thread对象,当前类对象作为参数
        5.待用start
    Runnable接口的实现类,不是线程,只是有run封装来了线程所要执行的代码
    Thread才是线程对象
    Runnable接口的实现类通过Thread转化交给JVM执行run方法,转化之后Runnable接口的实现类可以看作线程

Thread和Runnable区别
    Runnable可以实现资源共享,多个线程对象所使用的Runnable接口的实现类时同一个
    Thread不能实现资源共享,多个线程都会使用new开辟空间

资源共享中的问题(安全问题):
    问题一:
        资源重复
    问题二:
        资源超出
    问题出现的原因:
        多线程的随机性导致
    如何判断是否数据安全问题:
        1.多线程
        2.资源共享
        3.多语句操作资源共享
    解决方案:
        因为多线程的随机性,导致每个线程执行多语句操作资源共享时,语句执行不完整
        让语句执行完整
        通过锁

synchronized锁(同步):
    同步代码块:this
        格式:
            synchronized(任意对象){}
    同步方法:this
        格式:
            修饰符 synchronized 返回值类型 方法名(){}
    同步静态方法:类名.class
        格式:
            修饰符 static synchronized 返回值类型 方法名(){}

注意:
    想要锁住需要多个线程使用同一个对象            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值