Multithreading 线程如何同步其操作?

Multithreading 线程如何同步其操作?,multithreading,process,resources,synchronized,operation,Multithreading,Process,Resources,Synchronized,Operation,线程如何同步其操作?既然同一进程中的线程共享资源,那么这些线程如何才能不干扰其他线程呢?请用容易理解的语言解释。感谢各位专家 想象一扇狭窄的门,人们可以一次一个地通过这扇门。有时人太多时,他们会排队。正确编程的线程也是如此——它们遵守惯例,比如在门被占用时不试图通过门。编程不好的线程,以及举止不好的人,可能会忽略惯例,造成混乱 多线程编程中的主要抽象是一个资源——一个最多只能属于一个线程的内存区域。线程请求资源、等待资源、拥有资源——并且只能在欠资源时读取或写入该内存——并释放它们 有许多用于处

线程如何同步其操作?既然同一进程中的线程共享资源,那么这些线程如何才能不干扰其他线程呢?请用容易理解的语言解释。感谢各位专家

想象一扇狭窄的门,人们可以一次一个地通过这扇门。有时人太多时,他们会排队。正确编程的线程也是如此——它们遵守惯例,比如在门被占用时不试图通过门。编程不好的线程,以及举止不好的人,可能会忽略惯例,造成混乱

多线程编程中的主要抽象是一个资源——一个最多只能属于一个线程的内存区域。线程请求资源、等待资源、拥有资源——并且只能在欠资源时读取或写入该内存——并释放它们

有许多用于处理资源的同步原语,最重要的是信号量、监视器和阻塞队列

想要设计多线程程序的程序员,应该首先制定一个计划,计划将使用什么样的资源以及线程将如何交换它们。然后选择要使用的标准同步设施,或者设计新的设施并对其进行编程。专用设备通常配有监视器


多线程编程的教学通常从如何使用监视器进行线程交互开始。这是错误的。首先,学生应该掌握标准手段的使用——信号量和阻塞队列,这在95%的情况下是足够的,然后才学习使用监视器设计专门的设施。

本页将让您开始:这很有帮助!谢谢:)