多线程的开发难度远远高于单线程,在多线程开发中,我们需要处理线程间的通信,需要对线程并发做控制,需要做好线程间的协调工作。这里说的多线程指的是单进程内的多线程。 一: 互不通信的多线程模式: 如果线程之间不需要处理共享的数据,也不需要进行动作协调,那么将会非常简单,就是独立的线程各自完成各自线程中的工作。
二:基于共享容器协同的多线程模式 例如在生产者和消费者的例子,我们有一个队列用于生产和消费,那么这个队列就是多个线程会共享的一个容器或者是数据对象,多个线程会并发的访问这个队列,如下图
对于线程共享的数据,最好采用线程安全的容器或者是对象。 在这些容器里有些是支持并发的,会比简单的加互斥锁实现更好。