线程如何同步它们的操作?

时间:2016-05-28 01:39:20

标签: multithreading process resources synchronized operation

线程如何同步其操作?由于同一进程中的线程共享资源,因此线程如何以不干扰其他线程的方式运行?请用易于理解的语言解释。感谢所有专家!

1 个答案:

答案 0 :(得分:1)

想象一个狭窄的门,人们可以一次一个地通过这扇门。有时,当人数太多时,他们会形成一个队列。所以做正确编程的线程 - 他们遵守惯例,例如在被占用时不要试图通过门。编程错误的线程以及不礼貌的人可以忽略惯例并制造混乱。

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

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

想要设计多线程程序的程序员应首先制定计划将使用何种资源以及线程如何交换它们。然后选择将使用哪些标准同步设施,或设计新设施并对其进行编程。专业设施通常由监视器制成。

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