草庐IT

thread_safe

全部标签

c# - .NET Thread.Sleep 是否受 DST(或系统时间)更改的影响?

我不确定Windows内核如何处理线程时序......我说的是DST和任何其他影响Windows机器上一天中的时间的事件。例如,线程.Sleep将阻塞从零到infinite的线程毫秒。如果内核使用与一天中的时间相同的“时钟”,那么什么时候(a)有人手动更改一天中的时间,或者(b)与时间服务器的某些同步改变了一天中的时间,或者(c)夏令时开始或结束,系统已配置为响应这两个DST事件,等等,休眠线程是否受到任何影响?即,内核是否以程序员无需执行任何操作的方式处理此类事件?注意:对于非关键应用程序,这可能是谁在乎?情况。对于关键应用程序,知道这个问题的答案很重要,因为可能必须针对此类异常情况

c++ - 如何将 "safely"文件夹删除到回收站

我正在寻找一种将文件夹(带有子文件夹)放入回收站的方法,条件如下:它必须静默地完成--没有任何WindowsUI。文件夹绝不能被永久删除。如果不能放入回收站,我认为API会失败。为类似CopyFileEx的进程获取回调例程会。到目前为止,我能够想出这个:SHFILEOPSTRUCTsfo={0};sfo.wFunc=FO_DELETE;sfo.pFrom=L"K:\\testdelfromUSB\0";//FolderonaUSBsticksfo.fFlags=FOF_ALLOWUNDO|FOF_SILENT|FOF_NOCONFIRMATION|FOF_NOERRORUI|FOF_N

c++ - MinGW 和 std::thread

所以我一直在尝试使用MinGW编译器让下面的代码在Windows上编译运行。#include#includevoidtest(){std::cout我正在使用以下命令进行编译:g++-std=c++11test.cpp-otest.exe现在的问题是应该使用的MinGW版本,我已经尝试了所有我知道的版本。MinGW构建:thread-win32MinGW构建:thread-posixMinGW-w64:stdthreadexperimentalrubenvbMinGW-w64:stdthreadexperimentalrubenvb4.71号不起作用,因为GCCapparentlyon

windows - 当用户不使用 "Safely Remove Hardware"时,如何确保文件永久保存在 USB 上?

当我在我的delphi应用程序中将文件保存在USB上时,如果没有执行“安全删除硬件”(尤其是忘记使用),我如何确保文件真的(永久)保存在USB上?告诉我们的客户使用Windows功能“安全删除硬件”不起作用。是否有WindowsAPI命令来刷新缓冲区,以便将所有数据永久写入USB驱动器? 最佳答案 打开文件时,指定“直写”(FILE_FLAG_WRITE_THROUGH标志到CreateFile())。这将强制操作系统直接写出文件。它可能仍在操作系统缓存中以加速后续读取,但这对您来说不是问题。如果你确实想刷新文件缓冲区,当然总是有F

c++ - Windows 的 gcc 端口中的 thread_posixs 和 thread_win32 有什么区别?

我想下载适用于Windows的最新可用版本gcc4.7.2编译器。当我到达这个page在我应该看到下载链接的地方,我遇到了两类:线程定位线程-win32这两个有什么区别?它们只是线程实现吗?我的意思是它们只是在实现方式上有所不同,因此最终结果(类、如何使用它们等)保持不变吗?还是他们强加了特定的编码风格? 最佳答案 因此,您提供的链接指向独立的gcc4.7.2forwindows构建,又名mingw64。为了构建此编译器,使用了一组脚本,它们有助于定义编译选项。这些脚本简称为MinGW-builds,可以在不同的地方找到:googl

c++ - 编译 boost 时 `threading=multi` 到底做了什么?

我不完全确定threading=multi到底是什么flag在构建boost时会做。文档说:Causestheproducedbinariestobethread-safe.Thisrequirespropersupportinthesourcecodeitself.这似乎不是很具体。这是否意味着访问,例如,boost容器由mutexes/locks保护?或类似?由于我的代码的性能至关重要,我想尽量减少任何不必要的互斥等。更多细节:我的代码是一个插件DLL,它被加载到一个多线程的第三方应用程序中。我将boost静态链接到DLL(除了标准WindowsDLL外,不允许插件具有任何其他依赖

redis - 关于 redis 工作的冲突 : Is redis single threaded or multithreaded?

在此link,假设REDIS是单线程的。但是在这个link,鉴于"thecommandperformstheactualmemoryreclaiminginadifferentthread,soitisnotblocking"那有什么意义呢?redis会阻塞一个命令直到上一个命令完成还是实际上是多线程的? 最佳答案 Redis实际上使用了多个线程。它并不是真正的“多线程”,因为它使用单个线程来响应请求。这里是Redis的多线程端口。https://github.com/grisha/thredis但它有一些限制,例如它不能用作复制主

python - 属性错误 : module 'pkg_resources' has no attribute 'safe_name' django channels redis

我正在尝试安装channels_redis并遇到以下错误。pipinstallchannels_redisCollectingchannels_redisUsingcachedhttps://files.pythonhosted.org/packages/63/ae/adea3b1913aebb84ec6b6f3c30ba81b8bef79f99b51c7240810284152df4/channels_redis-2.2.1-py2.py3-none-any.whlRequirementalreadysatisfied:channels~=2.0in./env/lib/python3

multithreading - 在 Scala 中,Await、Thread.sleep 和 for comprehensions 有什么区别?

我将Redis与Scala结合使用。Redis任务是一个future所以我要研究future(Thread)。我找到了很多方法来等待future停止。我不知道有什么区别。Await、Thread.sleep和for理解之间有什么区别?valredisResult1=redis.set(objectId,value)Await.ready(redisResult1,Duration.Inf)valredisResult2=redis.set(objectId,value)for{_ 最佳答案 好的,让我们从秒数示例开始。考虑以下代码片

MySQL shell/client : Read-only access, 或 "safe history"选项?

昨天,我正在编写一个shell脚本,用于向MySQL数据库执行一些中等复杂的表插入操作。自然地,我一直打开一个mysql客户端shell窗口,以运行describe命令、示例查询,并在测试周期之间删除我的测试行。是的,这是在实时的生产数据库上。在我完成编码时,我请一位同事检查我的工作,然后再运行脚本来处理批处理条目。我们仔细检查了所有内容,他认为这对他来说很合适,然后我就启动了脚本。没问题。然后我回到我的实时shell,从历史中提取一行,更改where子句以查看生成的插入,然后按[Enter]......不幸的是我没有查看我正在编辑的整个命令!这是一条delete语句,而不是selec