在多线程编程中,怎么实现同步
在多线程编程中,如何实现同步?
说实话,在工作中没接触过多线程编程,但面试中经常会遇到。。。
如果多个线程同时对一段共享的表进行操作,如何保证多线程间同步呢?
先说说我的看法,使用信号量,获取表操作权的线程将信号量置位,其他线程发现信号量置位后将挂起(代码如何实现挂起?),表操作完成以后将信号量清位,其他线程重新申请表操作权(其他线程是如何知道信号量清位了?定时扫描?是否需要重新竞争表操作权?)
------解决方案--------------------
信号量,互斥,临界区等都可以实现同步,不要让线程挂起,循环就好了
说实话,在工作中没接触过多线程编程,但面试中经常会遇到。。。
如果多个线程同时对一段共享的表进行操作,如何保证多线程间同步呢?
先说说我的看法,使用信号量,获取表操作权的线程将信号量置位,其他线程发现信号量置位后将挂起(代码如何实现挂起?),表操作完成以后将信号量清位,其他线程重新申请表操作权(其他线程是如何知道信号量清位了?定时扫描?是否需要重新竞争表操作权?)
------解决方案--------------------
信号量,互斥,临界区等都可以实现同步,不要让线程挂起,循环就好了