草庐IT

线程id

全部标签

c++ - Windows.h 线程关联

除了输出不是我期望的那样,下面的代码确实可以编译和运行。我希望程序创建n个线程(取决于可用多核的数量)并运行程序末尾的一个简单例程以输出“测试:”后跟数字1-10。相反,我得到的是一个输出,它确实写了一些数字,但它最多不会超过两个,而且函数threadmain似乎没有完全在一个线程上运行,但它在其他方面输出了一些测试:012。我知道多线程会破坏输出,但我应该在屏幕上的某处看到数字3、4、5、6、7、8、9,但它没有显示。#defineWIN32_LEAN_AND_MEAN#include#include#include#includeHANDLE*m_threads=NULL;stat

java - 在一个 CPU 上运行 Java 线程

我们在JAVA中有一个多线程应用程序,它有多个并行运行的线程。现在我们想在一个核心上运行所有这些线程。当前,应用程序正在具有多个内核的系统上运行。我们知道.NetFramework中有一种技术可用ProcesAffinity来设置进程亲和性。但我们不想依赖.NetFramework,因为我们的应用程序是用java构建的。我们是否使用Bat文件设置Processaffinity并通过Bat文件运行我们的应用程序可执行jar文件?目前我们的应用程序在WindowsXP上运行。因此,我们需要一个能够在XP平台上正常运行的解决方案。 最佳答案

c++ - 在类中创建新线程(windows)

我想在一个类中创建一个新线程。问题是当我需要传递一个指向将在新线程中使用的函数的指针时。我无法将指针传递给该函数。引擎盖下的类函数基本上就是这样吧?voidfoo(this);那为什么这段代码拒绝编译呢?classTimeClass{private:DWORDdwThreadId;HANDLEhThread;LPTHREAD_START_ROUTINETimer();public:TimeClass();};TimeClass::TimeClass(){dwThreadId=CreateThread(NULL,0,Timer,this,0,&dwThreadId);}

windows - 难道不能从线程 ID 获取句柄吗?

在经典著作《Win32中的多线程应用程序》第31页,有如下说法:Toenforcesecurity,itisnotpossibletoobtainahandlefromathreadID.但是,我知道有一个众所周知的API,即OpenThread,可以完成这项工作。这是本书的错误吗? 最佳答案 有问题的书MultithreadingApplicationsinWin32发表于1996年,早于OpenThread()所在的操作系统功能可用。所以,这本书已经过时了。上面的MSDN链接说OpenThread()需要WindowsXP/20

c++ - 如何在进程间通信中获取其他端点的进程ID

使用Win32C++API,我想知道哪个IPCmethod,允许多进程通信中的任何端点获取与之通信的进程的PID或HANDLE。换句话说,如果进程A从进程B收到一条消息:如果B没有(直接)在发送的消息中给出任何提示,A可以知道B发送了消息吗?如何?要求:B的PID不能在IPC消息中发送给A。通信的目的是简单的远程过程调用。但是,我不希望远程系统/主机上的进程调用本地主机上运行的进程提供的过程。我当然找到了RPCdocumentationonMSDN.但是,我想知道是否有比RPC更好的方法来实现我想要的。或者,如果您认为RPC是可行的方法,能否告诉我原因以及您是否知道除MSDN之外还有其

windows - PSExec 中的 session ID

Psexec无法在远程session上为我显示记事本GUI。所以,我正在尝试获取sessionID,如下所示:c:\Users\Amitra\Downloads\PSTools>PsExec-uadministrator-pforce\\135.20.230.160querysessionPsExecv2.11-ExecuteprocessesremotelyCopyright(C)2001-2014MarkRussinovichSysinternals-www.sysinternals.comSESSIONNAMEUSERNAMEIDSTATETYPEDEVICE>services0

c++ - 线程池如何让我处理许多客户端连接?

我想处理300到400个客户端连接,但我不想为每个客户端连接创建一个线程(或者创建400个线程有什么问题吗?)。所以我读到我应该使用线程池来解决这个问题,但我无法理解线程池实际上是如何解决这个问题的。我的意思是在我对线程池的理解中,开始接任务的线程数量是有限的。但是一旦一个线程接受了一个recv()任务,如果没有什么可读取的,它将立即阻塞!那么解决方案不应该是我应该有一种机制,让我在实际尝试阅读之前知道是否有东西要阅读吗?那么线程池究竟是如何解决我处理许多客户端连接的问题的呢?编辑:将read()更改为recv()。 最佳答案 正如

c++ - windows C++ 多线程

我在使用Windows上的多线程C++代码时遇到了一些问题。classtest{public:boolflag;test(){flag=true;}voidstart_do(){while(flag)puts("doing...");}voidstop_do(){flag=0;}}intmain(){testt;HANDLEh=CreateThread(0,0,(LPTHREAD_START_ROUTINE)t.start_do,0,1,0);Sleep(5000);t.stop_do();return0;}我想用flag改变doing状态。但它不起作用。谁能帮帮我!

多线程程序中的java.lang.NullPointerException

这是代码:importjava.applet.Applet;importjava.awt.Color;`importjava.awt.Graphics;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;@SuppressWarnings("serial")publicclassPongextendsAppletimplementsRunnable,KeyListener{finalintwidth=700,height=500;publicstaticintscore=0;Threadthread;HumanP

c++ - ID3D11DeviceContext::Map 性能低下

我正在使用桌面复制将屏幕内容复制到内存中的位图中。我收到桌面纹理,然后创建暂存纹理,使用CopyResource将桌面纹理复制到暂存纹理中,最后调用ID3D11DeviceContext::Map访问暂存纹理位和复制它们。与此处描述的方式几乎相同:https://stackoverflow.com/a/27283837/825318问题是Map调用需要花费大量时间-对于4K等大型显示分辨率,每次调用最多可能需要100毫秒,这高得令人无法接受,因为我需要确保30fps速度。有没有什么办法可以更快的获取贴图的内容?如果没有,有没有办法提供我自己的映射地址指针,以便系统将纹理数据复制到那里?