五. 并发编程中一些问题

并发编程的问题

1. 多线程就一定好吗?快吗??

  • 并发编程的目的就是为了能提高程序的执行效率提高程序运行速度,但是并发编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,
    比如:内存泄漏、上下文切换死锁还有受限于硬件和软件的资源闲置问题。
  • 多线程就是几乎同时执行多个线程(一个处理器在某一个时间点上永远都只能是一个线程!即使这个处理器是多核的,除非有多个处理器才能实现多个线程同时运行)。CPU通过给每个线程分配CPU时间片来实现伪同时运行,因为CPU时间片一般很短很短,所以给人一种同时运行的感觉。

2. 上下文切换

  • 当前任务在执行完CPU时间片切换到另一个任务之前会先保存自己的状态,以便下次再切换会这个任务时,可以再加载这个任务的状态。任务从保存到再加载的过程就是一次上下文切换。
  • 上下文切换通常是计算密集型的。也就是说,它需要相当可观的处理器时间,在每秒几十上百次的切换中,每次切换都需要纳秒量级的时间。所以,上下文切换对系统来说意味着消耗大量的 CPU 时间,事实上,可能是操作系统中时间消耗最大的操作。

2.1 减少上下文切换

  • 上下文切换又分为2种:
  1. 让步式上下文切换
    指执行线程主动释放CPU,与锁竞争严重程度成正比,可通过减少锁竞争和使用CAS算法来避免;
  2. 抢占式上下文切换。
    指线程因分配的时间片用尽而被迫放弃CPU或者被其他优先级更高的线程所抢占,一般由于线程数大于CPU可用核心数引起,可通过适当减少线程数和使用协程来避免。

总结一下:

  • 减少锁的使用。因为多线程竞争锁时会引起上下文切换。
  • 使用CAS算法。这种算法也是为了减少锁的使用。CAS算法是一种无锁算法。
  • 减少线程的使用。人物很少的时候创建大量线程会导致大量线程都处于等待状态。
  • 使用协程。

2.2 CAS算法

CAS(比较与交换,Compare and swap) 是一种有名的无锁算法。无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Synchronization)。
实现非阻塞同步的方案称为"无锁编程算法"( Non-blocking algorithm)。 属于乐观锁。

CAS算法涉及到三个操作数

  • 需要读写的内存值V
  • 进行比较的值A
  • 拟写入的新值B
  • 当且仅当 V 的值等于 A时,CAS通过原子方式用新值B来更新V的值,否则不会执行任何操作(比较和替换是一个原子操作)。一般情况下是一个自旋操作,即不断的重试。

2.3 协程

协程也可以说是微线程或者说是轻量级的线程,它占用的内存更少并且更灵活。很多编程语言中都有协程。

3. 避免死锁

3.1 如何产生的死锁

  • 在操作系统中,死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
  • 在线程中,如果两个线程同时等待对方释放锁也会产生死锁。

3.2 避免死锁的常见方法

  • 避免一个线程同时获得多个锁
  • 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源
  • 尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制
  • 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况

3.3 解决资源限制

  1. 什么是资源限制?

所谓资源限制就是我们在进行并发编程时,程序的运行速度受限于计算机硬件资源比如CPU,内存等等或软件资源比如软件的质量、性能等等。举个例子:如果说服务器的带宽只有2MB/s,某个资源的下载速度是1MB/s,系统启动10个线程下载该资源并不会导致下载速度编程10MB/s,所以在并发编程时,需要考虑这些资源的限制。硬件资源限制有:带宽的上传和下载速度、硬盘读写速度和CPU处理速度;软件资源限制有数据库的连接数、socket连接数、软件质量和性能等等。

  1. 资源限制引发的问题

在并发编程中,程序运行加快的原因是运行方式从串行运行变为并发运行,但是如果某段程序的并发执行由于资源限制仍然在串行执行的话,这时候程序的运行不仅不会加快,反而会更慢,因为可能增加了上下文切换和资源调度的时间。

3.如何解决资源限制的问题

对于硬件资源限制,可以考虑使用集群并行执行程序。既然单机的资源有限制,那么就让程序在多机上运行。比如使用Hadoop或者自己搭建服务器集群。
对于软件资源的限制,可以考虑使用资源池将资源复用。比如使用连接池将数据库和Socket复用,或者在调用对方webservice接口获取数据时,只建立一个连接。另外还可以考虑使用良好的开源软件。

  1. 在资源限制的情况下如何进行并发编程

根据不同的资源限制调整程序的并发度,比如下载文件程序依赖于两个资源-带宽和硬盘读写速度。有数据库操作时,设计数据库练连接数,如果SQL语句执行非常快,而线程的数量比数据库连接数大很多,则某些线程会被阻塞,等待数据库连接。

%5Btoc%5D%0A%23%23%20%E4%BA%94.%20%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E4%B8%AD%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98%0A!%5Bhttps://cdn-images.postach.io/5193531f-2650-40fd-90d9-0c7df1b66f2d/981ef410-bf8e-43f2-a79d-16f0179b777b/ee35b00f-eae5-45fa-a85b-6531098449ac.jpg.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F608%3A1)%0A%3E%5B%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E7%9A%84%E9%97%AE%E9%A2%98%5D(https%3A%2F%2Fblog.csdn.net%2Fqq_34337272%2Farticle%2Fdetails%2F79844051)%0A%0A%23%23%23%201.%20%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%B0%B1%E4%B8%80%E5%AE%9A%E5%A5%BD%E5%90%97%EF%BC%9F%E5%BF%AB%E5%90%97%EF%BC%9F%EF%BC%9F%0A*%20%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E7%9A%84%E7%9B%AE%E7%9A%84%E5%B0%B1%E6%98%AF%E4%B8%BA%E4%BA%86%E8%83%BD%E6%8F%90%E9%AB%98%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%89%A7%E8%A1%8C%E6%95%88%E7%8E%87%E6%8F%90%E9%AB%98%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E9%80%9F%E5%BA%A6%EF%BC%8C%E4%BD%86%E6%98%AF%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E5%B9%B6%E4%B8%8D%E6%80%BB%E6%98%AF%E8%83%BD%E6%8F%90%E9%AB%98%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E9%80%9F%E5%BA%A6%E7%9A%84%EF%BC%8C%E8%80%8C%E4%B8%94%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E5%8F%AF%E8%83%BD%E4%BC%9A%E9%81%87%E5%88%B0%E5%BE%88%E5%A4%9A%E9%97%AE%E9%A2%98%EF%BC%8C%0A%E6%AF%94%E5%A6%82%EF%BC%9A%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F%E3%80%81**%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2**%E3%80%81**%E6%AD%BB%E9%94%81**%E8%BF%98%E6%9C%89%E5%8F%97%E9%99%90%E4%BA%8E%E7%A1%AC%E4%BB%B6%E5%92%8C%E8%BD%AF%E4%BB%B6%E7%9A%84%E8%B5%84%E6%BA%90%E9%97%B2%E7%BD%AE%E9%97%AE%E9%A2%98%E3%80%82%0A*%20%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%B0%B1%E6%98%AF%E5%87%A0%E4%B9%8E%E5%90%8C%E6%97%B6%E6%89%A7%E8%A1%8C%E5%A4%9A%E4%B8%AA%E7%BA%BF%E7%A8%8B%EF%BC%88%E4%B8%80%E4%B8%AA%E5%A4%84%E7%90%86%E5%99%A8%E5%9C%A8%E6%9F%90%E4%B8%80%E4%B8%AA%E6%97%B6%E9%97%B4%E7%82%B9%E4%B8%8A%E6%B0%B8%E8%BF%9C%E9%83%BD%E5%8F%AA%E8%83%BD%E6%98%AF%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%EF%BC%81%E5%8D%B3%E4%BD%BF%E8%BF%99%E4%B8%AA%E5%A4%84%E7%90%86%E5%99%A8%E6%98%AF%E5%A4%9A%E6%A0%B8%E7%9A%84%EF%BC%8C%E9%99%A4%E9%9D%9E%E6%9C%89%E5%A4%9A%E4%B8%AA%E5%A4%84%E7%90%86%E5%99%A8%E6%89%8D%E8%83%BD%E5%AE%9E%E7%8E%B0%E5%A4%9A%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C%EF%BC%89%E3%80%82CPU%E9%80%9A%E8%BF%87%E7%BB%99%E6%AF%8F%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%88%86%E9%85%8DCPU%E6%97%B6%E9%97%B4%E7%89%87%E6%9D%A5%E5%AE%9E%E7%8E%B0%E4%BC%AA%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C%EF%BC%8C%E5%9B%A0%E4%B8%BACPU%E6%97%B6%E9%97%B4%E7%89%87%E4%B8%80%E8%88%AC%E5%BE%88%E7%9F%AD%E5%BE%88%E7%9F%AD%EF%BC%8C%E6%89%80%E4%BB%A5%E7%BB%99%E4%BA%BA%E4%B8%80%E7%A7%8D%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C%E7%9A%84%E6%84%9F%E8%A7%89%E3%80%82%0A%0A%23%23%23%202.%20%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%0A%3E*%20%E5%BD%93%E5%89%8D%E4%BB%BB%E5%8A%A1%E5%9C%A8%E6%89%A7%E8%A1%8C%E5%AE%8CCPU%E6%97%B6%E9%97%B4%E7%89%87%E5%88%87%E6%8D%A2%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E4%BB%BB%E5%8A%A1%E4%B9%8B%E5%89%8D%E4%BC%9A%E5%85%88%E4%BF%9D%E5%AD%98%E8%87%AA%E5%B7%B1%E7%9A%84%E7%8A%B6%E6%80%81%EF%BC%8C%E4%BB%A5%E4%BE%BF%E4%B8%8B%E6%AC%A1%E5%86%8D%E5%88%87%E6%8D%A2%E4%BC%9A%E8%BF%99%E4%B8%AA%E4%BB%BB%E5%8A%A1%E6%97%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%86%8D%E5%8A%A0%E8%BD%BD%E8%BF%99%E4%B8%AA%E4%BB%BB%E5%8A%A1%E7%9A%84%E7%8A%B6%E6%80%81%E3%80%82%E4%BB%BB%E5%8A%A1%E4%BB%8E**%E4%BF%9D%E5%AD%98%E5%88%B0%E5%86%8D%E5%8A%A0%E8%BD%BD%E7%9A%84%E8%BF%87%E7%A8%8B**%E5%B0%B1%E6%98%AF%E4%B8%80%E6%AC%A1%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E3%80%82%0A%0A%3E*%20%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E9%80%9A%E5%B8%B8%E6%98%AF%E8%AE%A1%E7%AE%97%E5%AF%86%E9%9B%86%E5%9E%8B%E7%9A%84%E3%80%82%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%EF%BC%8C%E5%AE%83%E9%9C%80%E8%A6%81%E7%9B%B8%E5%BD%93%E5%8F%AF%E8%A7%82%E7%9A%84%E5%A4%84%E7%90%86%E5%99%A8%E6%97%B6%E9%97%B4%EF%BC%8C%E5%9C%A8%E6%AF%8F%E7%A7%92%E5%87%A0%E5%8D%81%E4%B8%8A%E7%99%BE%E6%AC%A1%E7%9A%84%E5%88%87%E6%8D%A2%E4%B8%AD%EF%BC%8C%E6%AF%8F%E6%AC%A1%E5%88%87%E6%8D%A2%E9%83%BD%E9%9C%80%E8%A6%81%E7%BA%B3%E7%A7%92%E9%87%8F%E7%BA%A7%E7%9A%84%E6%97%B6%E9%97%B4%E3%80%82%E6%89%80%E4%BB%A5%EF%BC%8C%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E5%AF%B9%E7%B3%BB%E7%BB%9F%E6%9D%A5%E8%AF%B4%E6%84%8F%E5%91%B3%E7%9D%80%E6%B6%88%E8%80%97%E5%A4%A7%E9%87%8F%E7%9A%84%20CPU%20%E6%97%B6%E9%97%B4%EF%BC%8C%E4%BA%8B%E5%AE%9E%E4%B8%8A%EF%BC%8C%E5%8F%AF%E8%83%BD%E6%98%AF%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%97%B6%E9%97%B4%E6%B6%88%E8%80%97%E6%9C%80%E5%A4%A7%E7%9A%84%E6%93%8D%E4%BD%9C%E3%80%82%C2%A0%0A%0A%23%23%23%23%202.1%20%E5%87%8F%E5%B0%91%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%0A%3E*%20%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E5%8F%88%E5%88%86%E4%B8%BA2%E7%A7%8D%EF%BC%9A%0A%3E1.%20%E8%AE%A9%E6%AD%A5%E5%BC%8F%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%0A%3E%E6%8C%87%E6%89%A7%E8%A1%8C%E7%BA%BF%E7%A8%8B%E4%B8%BB%E5%8A%A8%E9%87%8A%E6%94%BECPU%EF%BC%8C%E4%B8%8E%E9%94%81%E7%AB%9E%E4%BA%89%E4%B8%A5%E9%87%8D%E7%A8%8B%E5%BA%A6%E6%88%90%E6%AD%A3%E6%AF%94%EF%BC%8C%E5%8F%AF%E9%80%9A%E8%BF%87**%E5%87%8F%E5%B0%91%E9%94%81%E7%AB%9E%E4%BA%89**%E5%92%8C%E4%BD%BF%E7%94%A8**CAS%E7%AE%97%E6%B3%95**%E6%9D%A5%E9%81%BF%E5%85%8D%EF%BC%9B%0A%3E2.%20%E6%8A%A2%E5%8D%A0%E5%BC%8F%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E3%80%82%0A%3E%E6%8C%87%E7%BA%BF%E7%A8%8B%E5%9B%A0%E5%88%86%E9%85%8D%E7%9A%84%E6%97%B6%E9%97%B4%E7%89%87%E7%94%A8%E5%B0%BD%E8%80%8C%E8%A2%AB%E8%BF%AB%E6%94%BE%E5%BC%83CPU%E6%88%96%E8%80%85%E8%A2%AB%E5%85%B6%E4%BB%96%E4%BC%98%E5%85%88%E7%BA%A7%E6%9B%B4%E9%AB%98%E7%9A%84%E7%BA%BF%E7%A8%8B%E6%89%80%E6%8A%A2%E5%8D%A0%EF%BC%8C%E4%B8%80%E8%88%AC%E7%94%B1%E4%BA%8E%E7%BA%BF%E7%A8%8B%E6%95%B0%E5%A4%A7%E4%BA%8ECPU%E5%8F%AF%E7%94%A8%E6%A0%B8%E5%BF%83%E6%95%B0%E5%BC%95%E8%B5%B7%EF%BC%8C%E5%8F%AF%E9%80%9A%E8%BF%87%E9%80%82%E5%BD%93**%E5%87%8F%E5%B0%91%E7%BA%BF%E7%A8%8B%E6%95%B0**%E5%92%8C%E4%BD%BF%E7%94%A8**%E5%8D%8F%E7%A8%8B**%E6%9D%A5%E9%81%BF%E5%85%8D%E3%80%82%0A%0A%0A%E6%80%BB%E7%BB%93%E4%B8%80%E4%B8%8B%EF%BC%9A%0A*%20%E5%87%8F%E5%B0%91%E9%94%81%E7%9A%84%E4%BD%BF%E7%94%A8%E3%80%82%E5%9B%A0%E4%B8%BA%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%AB%9E%E4%BA%89%E9%94%81%E6%97%B6%E4%BC%9A%E5%BC%95%E8%B5%B7%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E3%80%82%0A*%20%E4%BD%BF%E7%94%A8CAS%E7%AE%97%E6%B3%95%E3%80%82%E8%BF%99%E7%A7%8D%E7%AE%97%E6%B3%95%E4%B9%9F%E6%98%AF%E4%B8%BA%E4%BA%86%E5%87%8F%E5%B0%91%E9%94%81%E7%9A%84%E4%BD%BF%E7%94%A8%E3%80%82CAS%E7%AE%97%E6%B3%95%E6%98%AF%E4%B8%80%E7%A7%8D%E6%97%A0%E9%94%81%E7%AE%97%E6%B3%95%E3%80%82%0A*%20%E5%87%8F%E5%B0%91%E7%BA%BF%E7%A8%8B%E7%9A%84%E4%BD%BF%E7%94%A8%E3%80%82%E4%BA%BA%E7%89%A9%E5%BE%88%E5%B0%91%E7%9A%84%E6%97%B6%E5%80%99%E5%88%9B%E5%BB%BA%E5%A4%A7%E9%87%8F%E7%BA%BF%E7%A8%8B%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%A4%A7%E9%87%8F%E7%BA%BF%E7%A8%8B%E9%83%BD%E5%A4%84%E4%BA%8E%E7%AD%89%E5%BE%85%E7%8A%B6%E6%80%81%E3%80%82%0A*%20%E4%BD%BF%E7%94%A8%E5%8D%8F%E7%A8%8B%E3%80%82%0A%0A%23%23%23%23%202.2%20CAS%E7%AE%97%E6%B3%95%0A%3ECAS%EF%BC%88%E6%AF%94%E8%BE%83%E4%B8%8E%E4%BA%A4%E6%8D%A2%EF%BC%8CCompare%20and%20swap%EF%BC%89%20%E6%98%AF%E4%B8%80%E7%A7%8D%E6%9C%89%E5%90%8D%E7%9A%84%E6%97%A0%E9%94%81%E7%AE%97%E6%B3%95%E3%80%82%E6%97%A0%E9%94%81%E7%BC%96%E7%A8%8B%EF%BC%8C%E5%8D%B3%E4%B8%8D%E4%BD%BF%E7%94%A8%E9%94%81%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%9E%E7%8E%B0%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8F%98%E9%87%8F%E5%90%8C%E6%AD%A5%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E5%9C%A8%E6%B2%A1%E6%9C%89%E7%BA%BF%E7%A8%8B%E8%A2%AB%E9%98%BB%E5%A1%9E%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%9E%E7%8E%B0%E5%8F%98%E9%87%8F%E7%9A%84%E5%90%8C%E6%AD%A5%EF%BC%8C%E6%89%80%E4%BB%A5%E4%B9%9F%E5%8F%AB%E9%9D%9E%E9%98%BB%E5%A1%9E%E5%90%8C%E6%AD%A5%EF%BC%88Non-blocking%20Synchronization%EF%BC%89%E3%80%82%0A%3E%E5%AE%9E%E7%8E%B0%E9%9D%9E%E9%98%BB%E5%A1%9E%E5%90%8C%E6%AD%A5%E7%9A%84%E6%96%B9%E6%A1%88%E7%A7%B0%E4%B8%BA%E2%80%9C%E6%97%A0%E9%94%81%E7%BC%96%E7%A8%8B%E7%AE%97%E6%B3%95%E2%80%9D%EF%BC%88%20Non-blocking%20algorithm%EF%BC%89%E3%80%82%20%E5%B1%9E%E4%BA%8E%E4%B9%90%E8%A7%82%E9%94%81%E3%80%82%0A%0A%3E**CAS%E7%AE%97%E6%B3%95%E6%B6%89%E5%8F%8A%E5%88%B0%E4%B8%89%E4%B8%AA%E6%93%8D%E4%BD%9C%E6%95%B0**%0A%3E*%20%E9%9C%80%E8%A6%81%E8%AF%BB%E5%86%99%E7%9A%84%E5%86%85%E5%AD%98%E5%80%BCV%0A%3E*%20%E8%BF%9B%E8%A1%8C%E6%AF%94%E8%BE%83%E7%9A%84%E5%80%BCA%0A%3E*%20%E6%8B%9F%E5%86%99%E5%85%A5%E7%9A%84%E6%96%B0%E5%80%BCB%0A%3E*%20%E5%BD%93%E4%B8%94%E4%BB%85%E5%BD%93%20V%20%E7%9A%84%E5%80%BC%E7%AD%89%E4%BA%8E%20A%E6%97%B6%EF%BC%8CCAS%E9%80%9A%E8%BF%87%E5%8E%9F%E5%AD%90%E6%96%B9%E5%BC%8F%E7%94%A8%E6%96%B0%E5%80%BCB%E6%9D%A5%E6%9B%B4%E6%96%B0V%E7%9A%84%E5%80%BC%EF%BC%8C%E5%90%A6%E5%88%99%E4%B8%8D%E4%BC%9A%E6%89%A7%E8%A1%8C%E4%BB%BB%E4%BD%95%E6%93%8D%E4%BD%9C%EF%BC%88%E6%AF%94%E8%BE%83%E5%92%8C%E6%9B%BF%E6%8D%A2%E6%98%AF%E4%B8%80%E4%B8%AA%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C%EF%BC%89%E3%80%82%E4%B8%80%E8%88%AC%E6%83%85%E5%86%B5%E4%B8%8B%E6%98%AF%E4%B8%80%E4%B8%AA%E8%87%AA%E6%97%8B%E6%93%8D%E4%BD%9C%EF%BC%8C%E5%8D%B3%E4%B8%8D%E6%96%AD%E7%9A%84%E9%87%8D%E8%AF%95%E3%80%82%0A%0A%0A%23%23%23%23%202.3%20%E5%8D%8F%E7%A8%8B%0A%3E%E5%8D%8F%E7%A8%8B%E4%B9%9F%E5%8F%AF%E4%BB%A5%E8%AF%B4%E6%98%AF%E5%BE%AE%E7%BA%BF%E7%A8%8B%E6%88%96%E8%80%85%E8%AF%B4%E6%98%AF%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%9A%84%E7%BA%BF%E7%A8%8B%EF%BC%8C%E5%AE%83%E5%8D%A0%E7%94%A8%E7%9A%84%E5%86%85%E5%AD%98%E6%9B%B4%E5%B0%91%E5%B9%B6%E4%B8%94%E6%9B%B4%E7%81%B5%E6%B4%BB%E3%80%82%E5%BE%88%E5%A4%9A%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E4%B8%AD%E9%83%BD%E6%9C%89%E5%8D%8F%E7%A8%8B%E3%80%82%0A%0A%23%23%23%203.%20%E9%81%BF%E5%85%8D%E6%AD%BB%E9%94%81%0A%23%23%23%23%203.1%20%E5%A6%82%E4%BD%95%E4%BA%A7%E7%94%9F%E7%9A%84%E6%AD%BB%E9%94%81%0A%3E*%20%E5%9C%A8%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%AD%EF%BC%8C%E6%AD%BB%E9%94%81%E6%98%AF%E6%8C%87%E4%B8%A4%E4%B8%AA%E6%88%96%E4%B8%A4%E4%B8%AA%E4%BB%A5%E4%B8%8A%E7%9A%84%E8%BF%9B%E7%A8%8B%E5%9C%A8%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%EF%BC%8C%E7%94%B1%E4%BA%8E%E7%AB%9E%E4%BA%89%E8%B5%84%E6%BA%90%E6%88%96%E8%80%85%E7%94%B1%E4%BA%8E%E5%BD%BC%E6%AD%A4%E9%80%9A%E4%BF%A1%E8%80%8C%E9%80%A0%E6%88%90%E7%9A%84%E4%B8%80%E7%A7%8D%E9%98%BB%E5%A1%9E%E7%9A%84%E7%8E%B0%E8%B1%A1%EF%BC%8C%E8%8B%A5%E6%97%A0%E5%A4%96%E5%8A%9B%E4%BD%9C%E7%94%A8%EF%BC%8C%E5%AE%83%E4%BB%AC%E9%83%BD%E5%B0%86%E6%97%A0%E6%B3%95%E6%8E%A8%E8%BF%9B%E4%B8%8B%E5%8E%BB%E3%80%82%E6%AD%A4%E6%97%B6%E7%A7%B0%E7%B3%BB%E7%BB%9F%E5%A4%84%E4%BA%8E%E6%AD%BB%E9%94%81%E7%8A%B6%E6%80%81%E6%88%96%E7%B3%BB%E7%BB%9F%E4%BA%A7%E7%94%9F%E4%BA%86%E6%AD%BB%E9%94%81%EF%BC%8C%E8%BF%99%E4%BA%9B%E6%B0%B8%E8%BF%9C%E5%9C%A8%E4%BA%92%E7%9B%B8%E7%AD%89%E5%BE%85%E7%9A%84%E8%BF%9B%E7%A8%8B%E7%A7%B0%E4%B8%BA%E6%AD%BB%E9%94%81%E8%BF%9B%E7%A8%8B%E3%80%82%0A%3E*%20%E5%9C%A8%E7%BA%BF%E7%A8%8B%E4%B8%AD%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%B8%A4%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%97%B6%E7%AD%89%E5%BE%85%E5%AF%B9%E6%96%B9%E9%87%8A%E6%94%BE%E9%94%81%E4%B9%9F%E4%BC%9A%E4%BA%A7%E7%94%9F%E6%AD%BB%E9%94%81%E3%80%82%0A%0A%23%23%23%23%203.2%20%E9%81%BF%E5%85%8D%E6%AD%BB%E9%94%81%E7%9A%84%E5%B8%B8%E8%A7%81%E6%96%B9%E6%B3%95%0A%3E*%20%E9%81%BF%E5%85%8D%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%97%B6%E8%8E%B7%E5%BE%97%E5%A4%9A%E4%B8%AA%E9%94%81%0A%3E*%20%E9%81%BF%E5%85%8D%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%E5%9C%A8%E9%94%81%E5%86%85%E5%90%8C%E6%97%B6%E5%8D%A0%E7%94%A8%E5%A4%9A%E4%B8%AA%E8%B5%84%E6%BA%90%EF%BC%8C%E5%B0%BD%E9%87%8F%E4%BF%9D%E8%AF%81%E6%AF%8F%E4%B8%AA%E9%94%81%E5%8F%AA%E5%8D%A0%E7%94%A8%E4%B8%80%E4%B8%AA%E8%B5%84%E6%BA%90%0A%3E*%20%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E5%AE%9A%E6%97%B6%E9%94%81%EF%BC%8C%E4%BD%BF%E7%94%A8lock.tryLock(timeout)%E6%9D%A5%E6%9B%BF%E4%BB%A3%E4%BD%BF%E7%94%A8%E5%86%85%E9%83%A8%E9%94%81%E6%9C%BA%E5%88%B6%0A%3E*%20%E5%AF%B9%E4%BA%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E9%94%81%EF%BC%8C%E5%8A%A0%E9%94%81%E5%92%8C%E8%A7%A3%E9%94%81%E5%BF%85%E9%A1%BB%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E9%87%8C%EF%BC%8C%E5%90%A6%E5%88%99%E4%BC%9A%E5%87%BA%E7%8E%B0%E8%A7%A3%E9%94%81%E5%A4%B1%E8%B4%A5%E7%9A%84%E6%83%85%E5%86%B5%0A%0A%23%23%23%23%203.3%20%E8%A7%A3%E5%86%B3%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%0A1.%20**%E4%BB%80%E4%B9%88%E6%98%AF%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%EF%BC%9F**%0A%3E%E6%89%80%E8%B0%93%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E5%B0%B1%E6%98%AF%E6%88%91%E4%BB%AC%E5%9C%A8%E8%BF%9B%E8%A1%8C%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E6%97%B6%EF%BC%8C%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BF%90%E8%A1%8C%E9%80%9F%E5%BA%A6%E5%8F%97%E9%99%90%E4%BA%8E%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A1%AC%E4%BB%B6%E8%B5%84%E6%BA%90%E6%AF%94%E5%A6%82CPU%2C%E5%86%85%E5%AD%98%E7%AD%89%E7%AD%89%E6%88%96%E8%BD%AF%E4%BB%B6%E8%B5%84%E6%BA%90%E6%AF%94%E5%A6%82%E8%BD%AF%E4%BB%B6%E7%9A%84%E8%B4%A8%E9%87%8F%E3%80%81%E6%80%A7%E8%83%BD%E7%AD%89%E7%AD%89%E3%80%82%E4%B8%BE%E4%B8%AA%E4%BE%8B%E5%AD%90%EF%BC%9A%E5%A6%82%E6%9E%9C%E8%AF%B4%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%B8%A6%E5%AE%BD%E5%8F%AA%E6%9C%892MB%2Fs%EF%BC%8C%E6%9F%90%E4%B8%AA%E8%B5%84%E6%BA%90%E7%9A%84%E4%B8%8B%E8%BD%BD%E9%80%9F%E5%BA%A6%E6%98%AF1MB%2Fs%EF%BC%8C%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A810%E4%B8%AA%E7%BA%BF%E7%A8%8B%E4%B8%8B%E8%BD%BD%E8%AF%A5%E8%B5%84%E6%BA%90%E5%B9%B6%E4%B8%8D%E4%BC%9A%E5%AF%BC%E8%87%B4%E4%B8%8B%E8%BD%BD%E9%80%9F%E5%BA%A6%E7%BC%96%E7%A8%8B10MB%2Fs%EF%BC%8C%E6%89%80%E4%BB%A5%E5%9C%A8%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E6%97%B6%EF%BC%8C%E9%9C%80%E8%A6%81%E8%80%83%E8%99%91%E8%BF%99%E4%BA%9B%E8%B5%84%E6%BA%90%E7%9A%84%E9%99%90%E5%88%B6%E3%80%82%E7%A1%AC%E4%BB%B6%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E6%9C%89%EF%BC%9A%E5%B8%A6%E5%AE%BD%E7%9A%84%E4%B8%8A%E4%BC%A0%E5%92%8C%E4%B8%8B%E8%BD%BD%E9%80%9F%E5%BA%A6%E3%80%81%E7%A1%AC%E7%9B%98%E8%AF%BB%E5%86%99%E9%80%9F%E5%BA%A6%E5%92%8CCPU%E5%A4%84%E7%90%86%E9%80%9F%E5%BA%A6%EF%BC%9B%E8%BD%AF%E4%BB%B6%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E6%9C%89%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E8%BF%9E%E6%8E%A5%E6%95%B0%E3%80%81socket%E8%BF%9E%E6%8E%A5%E6%95%B0%E3%80%81%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F%E5%92%8C%E6%80%A7%E8%83%BD%E7%AD%89%E7%AD%89%E3%80%82%0A2.%20**%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E5%BC%95%E5%8F%91%E7%9A%84%E9%97%AE%E9%A2%98**%0A%3E%E5%9C%A8%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E4%B8%AD%EF%BC%8C%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E5%8A%A0%E5%BF%AB%E7%9A%84%E5%8E%9F%E5%9B%A0%E6%98%AF%E8%BF%90%E8%A1%8C%E6%96%B9%E5%BC%8F%E4%BB%8E%E4%B8%B2%E8%A1%8C%E8%BF%90%E8%A1%8C%E5%8F%98%E4%B8%BA%E5%B9%B6%E5%8F%91%E8%BF%90%E8%A1%8C%EF%BC%8C%E4%BD%86%E6%98%AF%E5%A6%82%E6%9E%9C%E6%9F%90%E6%AE%B5%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%B9%B6%E5%8F%91%E6%89%A7%E8%A1%8C%E7%94%B1%E4%BA%8E%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E4%BB%8D%E7%84%B6%E5%9C%A8%E4%B8%B2%E8%A1%8C%E6%89%A7%E8%A1%8C%E7%9A%84%E8%AF%9D%EF%BC%8C%E8%BF%99%E6%97%B6%E5%80%99%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BF%90%E8%A1%8C%E4%B8%8D%E4%BB%85%E4%B8%8D%E4%BC%9A%E5%8A%A0%E5%BF%AB%EF%BC%8C%E5%8F%8D%E8%80%8C%E4%BC%9A%E6%9B%B4%E6%85%A2%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%8F%AF%E8%83%BD%E5%A2%9E%E5%8A%A0%E4%BA%86%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E5%92%8C%E8%B5%84%E6%BA%90%E8%B0%83%E5%BA%A6%E7%9A%84%E6%97%B6%E9%97%B4%E3%80%82%0A%0A3.**%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E7%9A%84%E9%97%AE%E9%A2%98**%0A%3E%E5%AF%B9%E4%BA%8E%E7%A1%AC%E4%BB%B6%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E4%BD%BF%E7%94%A8%E9%9B%86%E7%BE%A4%E5%B9%B6%E8%A1%8C%E6%89%A7%E8%A1%8C%E7%A8%8B%E5%BA%8F%E3%80%82%E6%97%A2%E7%84%B6%E5%8D%95%E6%9C%BA%E7%9A%84%E8%B5%84%E6%BA%90%E6%9C%89%E9%99%90%E5%88%B6%EF%BC%8C%E9%82%A3%E4%B9%88%E5%B0%B1%E8%AE%A9%E7%A8%8B%E5%BA%8F%E5%9C%A8%E5%A4%9A%E6%9C%BA%E4%B8%8A%E8%BF%90%E8%A1%8C%E3%80%82%E6%AF%94%E5%A6%82%E4%BD%BF%E7%94%A8Hadoop%E6%88%96%E8%80%85%E8%87%AA%E5%B7%B1%E6%90%AD%E5%BB%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%9B%86%E7%BE%A4%E3%80%82%0A%E5%AF%B9%E4%BA%8E%E8%BD%AF%E4%BB%B6%E8%B5%84%E6%BA%90%E7%9A%84%E9%99%90%E5%88%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E4%BD%BF%E7%94%A8%E8%B5%84%E6%BA%90%E6%B1%A0%E5%B0%86%E8%B5%84%E6%BA%90%E5%A4%8D%E7%94%A8%E3%80%82%E6%AF%94%E5%A6%82%E4%BD%BF%E7%94%A8%E8%BF%9E%E6%8E%A5%E6%B1%A0%E5%B0%86%E6%95%B0%E6%8D%AE%E5%BA%93%E5%92%8CSocket%E5%A4%8D%E7%94%A8%EF%BC%8C%E6%88%96%E8%80%85%E5%9C%A8%E8%B0%83%E7%94%A8%E5%AF%B9%E6%96%B9webservice%E6%8E%A5%E5%8F%A3%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE%E6%97%B6%EF%BC%8C%E5%8F%AA%E5%BB%BA%E7%AB%8B%E4%B8%80%E4%B8%AA%E8%BF%9E%E6%8E%A5%E3%80%82%E5%8F%A6%E5%A4%96%E8%BF%98%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E4%BD%BF%E7%94%A8%E8%89%AF%E5%A5%BD%E7%9A%84%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E3%80%82%0A%0A4.%20**%E5%9C%A8%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B**%0A%3E%E6%A0%B9%E6%8D%AE%E4%B8%8D%E5%90%8C%E7%9A%84%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6%E8%B0%83%E6%95%B4%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%B9%B6%E5%8F%91%E5%BA%A6%EF%BC%8C%E6%AF%94%E5%A6%82%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%E7%A8%8B%E5%BA%8F%E4%BE%9D%E8%B5%96%E4%BA%8E%E4%B8%A4%E4%B8%AA%E8%B5%84%E6%BA%90-%E5%B8%A6%E5%AE%BD%E5%92%8C%E7%A1%AC%E7%9B%98%E8%AF%BB%E5%86%99%E9%80%9F%E5%BA%A6%E3%80%82%E6%9C%89%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C%E6%97%B6%EF%BC%8C%E8%AE%BE%E8%AE%A1%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BB%83%E8%BF%9E%E6%8E%A5%E6%95%B0%EF%BC%8C%E5%A6%82%E6%9E%9CSQL%E8%AF%AD%E5%8F%A5%E6%89%A7%E8%A1%8C%E9%9D%9E%E5%B8%B8%E5%BF%AB%EF%BC%8C%E8%80%8C%E7%BA%BF%E7%A8%8B%E7%9A%84%E6%95%B0%E9%87%8F%E6%AF%94%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E6%95%B0%E5%A4%A7%E5%BE%88%E5%A4%9A%EF%BC%8C%E5%88%99%E6%9F%90%E4%BA%9B%E7%BA%BF%E7%A8%8B%E4%BC%9A%E8%A2%AB%E9%98%BB%E5%A1%9E%EF%BC%8C%E7%AD%89%E5%BE%85%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E3%80%82%0A