多线程访问驱动
多线程程序里对同一个IO驱动访问是否需要互斥?一个简单的IO驱动程序,控制不同的IO输出,在多线程里随机访问它,是否需要加上互斥保护?为什么?指点一下
[解决办法]
1,一般驱动是否可以在多线程中并发访问?
当然可以,不过要加互斥
2,如果驱动不涉及中断是否可以不做互斥保护?
不可以,是否有中断和是否互斥保护没有关系。多线程访问一个公共资源的时候就必须要互斥保护,防止相互干扰。
3,若做互斥保护一般是在应用层做互斥还是在驱动(内核层)做互斥?
都需要。
[解决办法]
驱动是必须做互斥处理的, 防止进程间的并发访问。应用程序一般为了防止线程间的并发竞争,也是需要的,当然不是必须的。最简单的例子就是printf,你在调用的时候并不需要加互斥保护的。
[解决办法]