当前位置:编程学习 > wap >>

Qt 线程间共享数据

线程间共享数据,一般都应该加保护锁,但如果只有一个生产者、一个消费者,并且缓冲足够大,Qt中应该也可以不加保护锁吧。

另外以前这个共享数据在MFC中是 用 usigned 数组表示的,在Qt中,是否可以还是用usigned 表示,还是要用QByteArray表示比较合适?

谢谢!
--------------------编程问答-------------------- 锁还是需要的,如果想去掉锁可以考虑用原子操作。Qt 里面有各种锁的支持。

另外Qt也是C++,C++里面能用的在Qt里面也能用,所以unsigned[]可以留着。QByteArray其实就是一个wrapper,没有动态增长什么需求的用unsigned[]就可以了 --------------------编程问答-------------------- 建议加锁。为了学术研究的目的,你可以看看
C++ Concurrency In Action
Practical Multithreading
By Anthony Williams
它介绍了Designing lock-free concurrent data structures
lock_free_stack
lock_free_queue
--------------------编程问答-------------------- 不加保护,你怎么保证有序进行? --------------------编程问答-------------------- 1、共享数据需要加锁;
2、usigned是类型修饰符,是语言特性,不是Qt特性;
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,