摘要:
一个事实 在实际的项目开发中,大多数时候是直接将组件中预定义的信号连接到槽函数,信号发射时槽函数被调用。 深度的思考 信号是怎么来的?又是如何发射的? Qt中信号(SIGNAL)的本质 —信号只是一个特殊的成员函数声明 函数的返回值是void类型 函数只能声明不能定义 —信号必须使用signals关 阅读全文
posted @ 2021-01-24 14:25
MaxBruce
阅读(301)
评论(0)
推荐(0)
摘要:
信号量的概念 -信号量是特殊的线程锁 -信号量允许N个线程同时访问临界资源 -Qt中直接支持信号量(QSemaphore) 线程锁是用来保护临界资源的,每个线程锁每次只允许一个线程进行访问临界资源。 QSemaphore sem(1)定义了一个信号量,并且N的值为1,意味着一次只允许一个线程去访问临 阅读全文
posted @ 2021-01-24 13:51
MaxBruce
阅读(153)
评论(0)
推荐(0)
摘要:
问题:程序有多少临界资源?需要多少线程锁? 临界资源是没有任何的限制 一般性原则:每一个临界资源都需要一个线程锁进行保护(一 一对应) 定义了两把线程锁,显然是为了保护两个临界资源而定义的。在线程A中需要两个临界资源才能保证工作,这两个临界资源对应的线程锁就是m1,m2。在线程B中也需要两个临界资源 阅读全文
posted @ 2021-01-24 13:38
MaxBruce
阅读(116)
评论(0)
推荐(0)
摘要:
值得思考的问题: 多个线程除了在时序上可能产生相互依赖,在其他方面是否也可能产生相互依赖呢? 生产消费者问题:-有n个生产者同时制造产品,并把产品存入仓库中 -有m个消费者同时需要从仓库中取出产品 -规则: 当仓库未满,任意生产者可以存入产品 当仓库未空,任意消费者可以取出产品 编程实验:生产消费者 阅读全文
posted @ 2021-01-24 13:34
MaxBruce
阅读(84)
评论(0)
推荐(0)
摘要:
多线程间的同步 串行解决方案示例代码: #include <QCoreApplication> #include <QThread> #include <QDebug> #include <QObject> /* sum(n)=> 1 + 2 + 3 + ..... + n sum(1000)= ? 阅读全文
posted @ 2021-01-24 13:19
MaxBruce
阅读(57)
评论(0)
推荐(0)
摘要:
Qt中的多线程编程 QThread编程示例 class MyThread: public QThread //创建线程类 { protected: void run() //线程入口函数 { for(int i=0; i<5; i++) { qDebug() << objectName() << " 阅读全文
posted @ 2021-01-24 12:05
MaxBruce
阅读(304)
评论(0)
推荐(0)
摘要:
内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去,在此之后进程操作文件,就像操作进程空间里的地址一样了,比如使用c语言的 memcpy等内存操作的函数。这种方法能够很好的应用在需要频繁处理一个文件或者是一个大文件的场合,这种方式处理IO效率比普通IO效率要高 共享内存是内存映射文件的一种特殊 阅读全文
posted @ 2021-01-24 10:50
MaxBruce
阅读(1142)
评论(0)
推荐(0)
摘要:
一、创建DLL 1、建立动态链接库项目 2、创建头文件和源文件 删除 framework.h、dllmain.c 等现有文件(照顾VS2013等低版本),创建新的头文件 Mydll.c Mydll.h Mydll.h头文件代码如下: #include<stdio.h> _declspec(dllex 阅读全文
posted @ 2021-01-24 09:50
MaxBruce
阅读(3759)
评论(0)
推荐(0)