浏览 1447 次
锁定老帖子 主题:多线程的知识
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-25
最后修改:2010-05-27
1 多核利用 2 为单个任务建模方便 3 异步处理不同事件,不必盲等 4 现代的UI也需要它 风险: 1 同步变量易错误 2 因资源限制导致线程活跃性问题 3 因2导致的性能问题 用途: 框架,UI,Backend 线程安全的本质是什么: 并非是线程和锁,这些只是基础结构,本质是如何控制共享变量访问的状态 什么是线程安全: 就是线程之间的执行还没有发生错误,就是没有发生意外 一个线程安全的类本身封装了对类内部方法和变量的异步请求,调用方无需考虑线程安全问题 无状态的变量总是线程安全的 原子性: 完整执行的单元,如不加锁控制,则会发生竞态条件,如不加锁的懒汉单例模式,或者复合操作。 锁,内在锁,重入: 利用synchronized关键字控制访问单元,同一线程可以重入锁内部,避免了面向对象产生的问题。同一变量的所有出现场合应该使用同一个锁来控制。synchronized(lock)。 即使所有方法都用synchronized控制也不能保证线程安全,它可能在调用时编程复合操作。 活跃性和性能问题: 过大的粒度会导致这个问题,用锁进行异步控制,导致了线程的顺序执行。 简单和性能是一对矛盾,需要适当的取舍。不能在没有考虑成熟的情况下,为了性能去牺牲简洁性。 要尽量避免耗时操作,IO和网络操作中使用锁 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |