Java线程进行并发编程

来源:互联网 发布:网络购物的发展趋势 编辑:程序博客网 时间:2024/05/22 08:00

学习使用Java线程进行并发编程,你应该了解:

  1. 可以运行多个独立的任务。
  2. 需要考虑到关闭这些任务时,可能出现的问题。
  3. 任务可能彼此之间在共享资源上互相干涉,互斥(锁)可以防止这种冲突。
  4. 如果任务设计的不够仔细,可能会出现死锁。
明确什么时候使用并发,是么时候应当避免使用并发,使用它的主要原因是:

  • 要处理很多任务,而且它们交织在一起,应用并发能更好更有效的使用计算机。
  • 要能够更好的组织代码。
  • 便于用户使用
多线程的缺陷

  1. 等待共享资源时性能降低。
  2. 需要处理线程的额外资源消耗。
  3. 可能会导致不必要的复杂度。
  4. 可能产生一些病态行为,比如竞争、死锁和活锁(多个各自运行各自任务的线程使得整体无法完成)。
  5. 不同的平台导致的不一致性。比如竞争条件,你在某些机器上出现的很快,然而在其他机器上可能根本不会出现。
因为多个线程可能会共享一个资源,比如一个对象的内存,你需要确认多个线程不会同时读取或改变这个资源。

这就需要使用可用的加锁机制(比如synchronized关键字)。它们仅仅是一个工具,同时会引入潜在的死锁条件,所以要对它们有着深刻的理解。

原创粉丝点击