A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史小兵 中级黑马   /  2012-9-15 23:10  /  1813 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

同步与异步的安全性,还有同步与异步的优缺点有哪些?

4 个回复

倒序浏览
推荐看看这个帖子 希望对你有帮助!http://bbs.itheima.com/forum.php ... ;pre_pos=2&ext=
回复 使用道具 举报
同步就是串行使用一些资源.

    1. 多线程中对共享、可变的数据进行同步.
    对于函数中的局部变量没必要进行同步.
    对于不可变数据,也没必要进行同步.
    多线程中访问共享可变数据才有必要.
  单个线程中可以使用synchronized,而且可以嵌套,但无意义.
同步最最安全,最保险的。而异步不安全,容易导致死锁,这样一个线程死掉就会导致整个
进程崩溃,但没有同步机制的存在,性能会有所提升。但是同步是需要付出代价的,每次调用同步方法时,都需要执行某个管理程序。
简单的说就是A线程使用加锁的资源,那么B线程请求该资源,那么必须等待A线程释放锁。即A线程执行完毕,B线程执行。但是异步线程不存在这样的问题!

回复 使用道具 举报
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap
  ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。



所谓同步的,就线程安全;异步的,就不是线程安全。同步异步影响到的是多线程状态下访问资源的安全性。

同步的容器类,实现的访问资源前的加锁和访问资源后的解锁操作,确保了多线程状态下的安全访问,但牺牲了执行效率。

而异步的,效率高了,但在多线程模式运行下是不安全的。显然单线程运行的程序,选择异步容器是不涉及线程安全性问题的。
回复 使用道具 举报
同步较异步安全    同步运行速度较异步要慢   就像开车一样    速度慢但是安全  速度快可是不安全
一句话  概括   同步速度慢  但是安全   异步速度快 可是不安全

评分

参与人数 1技术分 +1 收起 理由
admin + 1 新手鼓励分

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马