黑马程序员技术交流社区
标题:
同步与异步
[打印本页]
作者:
史小兵
时间:
2012-9-15 23:10
标题:
同步与异步
同步与异步的安全性,还有同步与异步的优缺点有哪些?
作者:
黄敏
时间:
2012-9-16 08:40
推荐看看这个帖子 希望对你有帮助!
http://bbs.itheima.com/forum.php ... ;pre_pos=2&ext=
作者:
史小兵
时间:
2012-9-16 09:25
同步就是串行使用一些资源.
1. 多线程中对共享、可变的数据进行同步.
对于函数中的局部变量没必要进行同步.
对于不可变数据,也没必要进行同步.
多线程中访问共享可变数据才有必要.
单个线程中可以使用synchronized,而且可以嵌套,但无意义.
同步最最安全,最保险的。而异步不安全,容易导致死锁,这样一个线程死掉就会导致整个
进程崩溃,但没有同步机制的存在,性能会有所提升。但是同步是需要付出代价的,每次调用同步方法时,都需要执行某个管理程序。
简单的说就是A线程使用加锁的资源,那么B线程请求该资源,那么必须等待A线程释放锁。即A线程执行完毕,B线程执行。但是异步线程不存在这样的问题!
作者:
田旭阳
时间:
2012-9-16 10:31
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap
ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。
所谓同步的,就线程安全;异步的,就不是线程安全。同步异步影响到的是多线程状态下访问资源的安全性。
同步的容器类,实现的访问资源前的加锁和访问资源后的解锁操作,确保了多线程状态下的安全访问,但牺牲了执行效率。
而异步的,效率高了,但在多线程模式运行下是不安全的。显然单线程运行的程序,选择异步容器是不涉及线程安全性问题的。
作者:
李健_8
时间:
2012-9-16 14:07
同步较异步安全 同步运行速度较异步要慢 就像开车一样 速度慢但是安全 速度快可是不安全
一句话 概括 同步速度慢 但是安全 异步速度快 可是不安全
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2