美文网首页
线程安全问题及解决的2种方式

线程安全问题及解决的2种方式

作者: 天使飞吧 | 来源:发表于2019-06-17 14:49 被阅读0次

    什么是线程安全问题?

    在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,如:一个变量、一个对象、一个文件、一个数据库表等这样就容易出现数据错误。

    解决的2种方式::

    1.同步方法:synchronized 修饰的方法 ex:public synchronized void test(){}

     2.同步代码块 : synchronized(被加锁的对象){ 代码 }

     3.锁机制Lock

    调用lock方法:加锁    {代码....}  调用unlock方法:解锁.

    比较

    1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类;

    2.synchronized会自动释放锁,Lock需手工释放锁(unlock()方法),否则容易造成线程死锁;

    3.Lock锁适合大量同步的代码的同步问题,synchronized锁适合代码少量的同步问题。

    相关文章

      网友评论

          本文标题:线程安全问题及解决的2种方式

          本文链接:https://www.haomeiwen.com/subject/ssuafctx.html