Articles of multithreading

Java中的跨进程同步

我如何同步在Windows上运行的两个Java进程? 我正在寻找像Win32命名互斥对象,它允许两个进程使用相同的locking对象。 谢谢

Windows API线程池简单的例子

[编辑:感谢MSalters答案和雷蒙德陈的InterlockedIncrement VS EnterCriticalSection / counter ++ / LeaveCriticalSection的答案 ,问题已解决,下面的代码工作正常。 这应该提供一个在Windows中使用线程池的有趣简单例子] 我无法find以下任务的简单示例。 我的程序,例如,需要增加一个巨大的std :: vector中的值,所以我想这样做并行。 它需要在程序的整个生命周期中进行很多次。 我知道如何在例程的每次调用时使用CreateThread,但是我无法摆脱使用ThreadPool的CreateThread。 这是我做的: class Thread { public: Thread(){} virtual void run() = 0 ; // I can inherit an "IncrementVectorThread" }; class IncrementVectorThread: public Thread { public: IncrementVectorThread(int threadID, int nbThreads, std::vector<int> &vec) : id(threadID), nb(nbThreads), myvec(vec) { }; virtual void […]

debuggingmultithreading应用程序后系统错误

debuggingmultithreading应用程序后,我有系统库“ntdll.dll”的错误。 错误代码是0x4000001f(STATUS_WX86_BREAKPOINT)。 错误发生在个案的情况下,只有在通过Delphi IDEdebugging时才会发生。 我在Win7 x64上使用Delphi 2010。 在什么可能是问题? 谢谢。

为什么Windows 10在我的程序中启动额外的线程?

在Visual Studio 2015中,在一个新的空的C ++项目中,为控制台应用程序构build以下内容: int main() { return 0; } 在返回中设置一个中断点,并在debugging器中启动程序。 在Windows 7上,从截点开始,这个程序只有一个线程。 但在Windows 10上,它有五个(!)线程:主线程和四个等待同步对象的“工作线程”。 谁启动线程池(或如何找出)?

WaitForSingleObject是否放弃线程的时间片?

我正在C做一个win32程序 当你有多个线程正在运行,并且其中一个线程正在等待一个事件(例如使用WaitForSingleObject() )时,那个线程是否仍然会得到完整的CPU时间片? 换言之,操作系统是否知道该线程不需要其时间片,直到其中一个事件发出信号为止?

如何获得使用标准库创build的线程的winapi id?

C ++ 11的标准库包含允许线程创build的<thread> 。 不过,Windows API需要一些ID(即PostThreadMessage )。 我怎么才能得到它? 备注: std::thread::get_id()似乎不工作: PostThreadMessage(m_thread->get_id(), WM_QUIT, 0, 0); e:\documents\khook\khooker\hook_runner.cpp(129): error C2664: 'PostThreadMessageW' : cannot convert parameter 1 from 'std::thread::id' to 'DWORD'

GetSystemInfo会给你虚拟CPU的总数(即超线程)吗?

GetSystemInfo会给你物理CPU /内核的数量,但是我想知道虚拟CPU的总数量。 即在新的Nahelam芯片,他们有4个核心,但出现为8 cpu。 如果GetSystemInfo没有提供这些信息,我需要什么API(我已经看到了一个获取逻辑处理器数量的函数,但它只是Vista,我需要支持XP)?

multithreadingbatch file传递参数

multithreading部分已经在这里回复,并且工作得很好(非常感谢Magoo ) 主要代码 SET /a instances=%NUMBER_OF_PROCESSORS% :: make a tempfile :maketemp SET "tempfile=%temp%\%random%" IF EXIST "%tempfile%?" (GOTO maketemp) ELSE (ECHO.>"%tempfile%a") :: :loop SET "nextfile=%~1" IF NOT DEFINED nextfile ( DEL "%tempfile%a*" >NUL 2>NUL ::ECHO all done exit ) FOR /L %%a IN (1,1,%instances%) DO ( IF NOT EXIST "%tempfile%a%%a" ( >"%tempfile%a%%a" ECHO. START /B "Instance […]

如何将名称设置为Win32线程?

我如何设置一个名称为Win32线程。 我没有find任何Win32 API来实现相同的。 基本上我想在日志文件中添加线程名称。 TLS(线程本地存储)是唯一的方法吗?

WPF应用程序消息循环和PostThreadMessage

对于WPF应用程序,在Application.Run内部是否有一个经典的消息循环(在Windows的GetMessage/DispatchMessage )? 是否有可能捕获从PostThreadMessage从另一个Win32应用程序发布到WPF UI线程(没有HWND句柄的消息)的消息。 谢谢。