草庐IT

线程不安全

全部标签

windows - 线程命令在 WInDbg 中不起作用

尝试在WinDbg中执行基于线程的命令。安装程序是具有XP的VMWare,主机是Win7。基于this,试图调试应用程序挂起。但是无法从中获取任何信息。对于简单的tilda(~)它给出了语法错误。我需要做一些不同的设置才能执行这些命令吗?无论如何,这些“特殊”吗?因为我可以使用其他命令。基本上我希望WinDbg让我监控线程的状态?例如等待响应、发送请求或类似的事情。 最佳答案 ~仅为用户模式调试更改线程上下文。对于krnelmkode调试,请参阅帮助:。线。过程!线!过程 关于windo

windows - 线程数和处理器核心数有什么关系?

我正在编写一个基于线程池(IOCP)的服务器应用程序。但是不知道多少线程合适。线程数与处理器核心数有关吗? 最佳答案 如果您的工作项从不阻塞,请使用threads=cores。如果您的线程永远不需要取消调度,您可以通过为每个核心创建一个线程来最大化所有核心。如果您的工作项有时会阻塞(如果您想充分利用IOCP,它们不应该做太多),您需要更多线程。您需要测量多少。 关于windows-线程数和处理器核心数有什么关系?,我们在StackOverflow上找到一个类似的问题:

java - 使用 Jpcap 的线程 "main"java.lang.UnsatisfiedLinkError 中的异常

我在我的java程序中使用jpcap。我尝试了一切让它运行,但没有任何效果。给出异常::Exceptioninthread"main"java.lang.UnsatisfiedLinkErrorC:\ProgramFiles\Java\jdk1.7.0\bin\Jpcap.dll:Can'tfinddependentlibraries我正在使用netbeans7、JDK7、Windows7所有32位 最佳答案 如果您完全确定您的操作系统、Java和DLL都是32位的,那么您可能缺少libpcap库的Windows实现。请尝试以下步骤

python - 在 Windows 上隐藏 python 进程和线程输出

我有一个运行python进程的WindowsCMD。该进程同时使用python多处理和线程运行更多进程。该进程的所有打印输出都进入同一个CMD窗口。有什么方法可以隐藏所有进程输出?我尝试使用下一个CMD命令来执行此操作,但它没有隐藏输出。start"time_tester"C:\Windows\system32\cmd.exe/kC:\Python26\python.exetime_test.py>nul 最佳答案 将/b添加到CMD命令并将输出重定向到nul(>nul)解决了我的问题。这样,所有进程和子进程都将输出返回到同一个CM

c++ - 使用父窗口在对象中启动线程

我有一些旧的MFC代码,其中一个对象继承了CDialogclassMYCLASS:publicCDialog使用标准构造函数MYCLASS(CWnd*pParent=NULL);这个类的每个实例都从主窗口初始化,OverriddenCreate函数创建一个无模式对话框BOOLMYCLASS::Create(CWnd*pParentWnd,longiPort){//createthedialoguethatIrequired!CDialog::Create(MYCLASS::IDD,pParentWnd);//otherstuff....}然后实现它自己的WindowProc。LRESU

linux - 为什么现代操作系统(Linux、Windows、Solaris)要实现一对一线程模型?

阅读我的操作系统课教科书,即操作系统概念,第8版,作者是Silberschatz、Galvin和Gagne,我在有关线程的章节中发现了一些有趣的东西。在介绍线程模型时,他们从:多对一-声明本质上这并不能提供真正的并发接下来他们移动到:一对一-声明这提供了真正的并发性,但由于创建过多线程的开销而受到线程数量限制。最后,他们转向看似显而易见的解决方案:多对多这显然是两全其美。但是,如果您在一对一部分注意到,它声明Linux与Windows系列操作系统一起实现一对一模型。在最后一张图片之后的书中...如果多对多是最好的解决方案,为什么Linux、Windows和Solaris(可能还有其他)

windows - 为什么另一个线程中的阻塞 IO 会阻止 CreateWindowEx() 返回

我有一个非常简单的Windows控制台应用程序,它首先创建一个线程来处理stdin上的输入。它使用main()中的CreateThread()创建线程,线程做的第一件事是调用getchar()并阻塞,等待。然后main()使用RegisterClass()注册一个窗口类,并调用CreateWindowEx()创建一个不可见的消息窗口。但是CreateWindowEx()永远不会返回。如果我删除线程中的getchar()并将其替换为while(1)Sleep(1000);,一切正常。如果我将Sleep(1000);添加到线程函数的开头,CreateWindowEx()调用会成功,但随后线

windows - Windows 上的 CallNamedPipe 线程安全吗

有多个线程同时调用CallNamedPipe将消息发送到同一个命名管道。Windows上的CallNamedPipe方法是否线程安全,我是否应该使用互斥锁来保护对同一命名管道的并发访问? 最佳答案 是的,它本质上是线程安全的,因为它不使用句柄、缓冲区或客户端上两个(或更多)线程可能尝试同时访问的任何其他内容。每次调用CallNamedPipe时,它都会打开命名管道的一个新实例、发送消息并关闭句柄。(线程同时访问同一个命名管道的不同实例的事实不是问题。这与多个进程同时访问同一个命名管道的不同实例没有什么不同,如果不允许命名管道会比它们

c++ - 启动 Boost 线程时的保证

我正在使用Boost和VisualStudio2013don'tsupportstheC++11memorymodel.启动Boost线程时是否有任何内存保证?我在JavaLanguageSpecification17.4.5中寻找保证:Acalltostart()onathreadhappens-beforeanyactionsinthestartedthread.在我的例子中,我想创建一个(非线程安全的)TCP客户端,而不是启动一个接收线程:structConnection{boost::shared_ptrclient;};autoclient=boost::shared_ptr

c++ - qt在windows线程中发出信号

我正在开发一个QT应用程序。根据我的要求,我需要创建一个Windows线程,我必须在其中发出一个信号来通知我在不同类中的函数。当我尝试发出信号时,出现错误:cannotcallmemberfunction'voidDevice::DataRecieved(QByteArray)'withoutobjectemitDataRecieved(Rxdata);。是否有可能从Windows线程发出QT信号。谢谢。这是我的代码:DWORDWINAPIDevice::RxThread(LPVOIDpar){XLstatusxlStatus;unsignedintmsgsrx=RECEIVE_EVE