我对信号量超时期间错误有一些个人经验。我能够解决错误,但这仍然让我问,到底什么是“信号量超时期限”?我怎样才能防止它发生?为什么只有在有大量数据传输问题时才会发生这种情况?
信号量(和互斥锁)是一个同步对象,用于在共享资源的各个进程之间进行通信。例如,如果您有多个线程执行除法检查素数,则您可能希望在每次测试完成后分配不同的除数。
线程需要使用等待函数检查信号量以查看对象是否空闲。然而,为了处理死锁,如果一个线程无法释放信号量,等待函数可以指定一个有限的超时,即您看到的消息。如果传输时间过长,则控制该传输的信号量就会过期。
有关详细信息,请参阅WaitForSingleObject 函数或C++ 教程多线程编程。
那么,在现实情况下,当通过带宽有限的网络传输大文件时,您会怎么做呢?
压缩文件(特别是 XML 数据,使用 Zip 压缩约 10:1)。
将文件分成块(很麻烦,但适用于任何文件类型)。
提高带宽。例如,我发现 SSH/SFTP在旧服务器上非常慢,但添加 RAM 后,数据传输速度更快。
| 归档时间: |
|
| 查看次数: |
8717 次 |
| 最近记录: |