【Windows线程的多任务处理】教程文章相关的互联网学习教程文章

Windows环境,获取当前线程的ID,GetCurrentThreadId

GetCurrentThreadId 打印格式:0x%08lx 头文件:processthreadsapi.h (include Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2, Windows.h) https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentthreadid

绘制具有多个线程的位图,在Windows和Android中结果不同【代码】

我的应用程序创建了Mandelbrot分形的图像.通过计算数据行,将其转换为颜色行,然后将该行复制到位图,可以完成此操作.首先,这是以串行方式完成的,效果很好.现在,我尝试使用多个线程来执行此操作.每个线程都会计算自己的一系列行,例如线程0计算0、4、8、12,…;线程1:1,5,9,…;线程2、2、6、10,…,线程3、3、7 …,在给定的示例中使用了4个线程(FMax_Threads = 4).关键部分(声明为全局)必须防止多个线程同时写入位图.另一个全局变量(Fin...

从Windows cmd或IDLE但不是从PyCharm运行时,“ QThread:线程仍在运行时被销毁”吗?【代码】

这是使用QObject.moveToThread实现PyQt多线程的程序的简化版本.基本上,我在一个单独的线程上查询网页并提取HMTL内容. 我在从IDLE或Windows命令行运行代码挂起python时遇到此问题. Windows cmd显示“ QThread:线程仍在运行时被销毁”.但是,如果我从Pycharm运行它,则一切正常. 您可以获取.ui文件here 有任何想法吗?import requests import sys from PyQt4 import QtGui, uic from PyQt4.QtCore import QObject, pyqtSlot, pyqtSign...

在C / Windows中获取线程状态

必须有一个获取系统中线程当前状态的函数,因为有此应用程序:http://www.softwareverify.com/cpp/thread-status-monitor/index.html 它必须使用某种API函数或其他东西.我如何在C / Windows中获得线程状态?谢谢 :) (这是我今天的最后一个问题.我保证:))解决方法:您可以使用以下示例获取正在运行的进程,并在获得进程ID时获取线程. Taking a Snapshot and Viewing Processes Traversing the Thread List 编辑:获取对线程感兴趣的句...

c-在Windows上使用QProcess启动进程错误:“计时器只能与以QThread启动的线程一起使用”【代码】

我有一个最小的例子,我正在努力工作.最终目标是能够将一些信息传达给正在等待“ cin”调用的程序.我想这与标准输入有关. 我现阶段尝试使用一些Qt对象来帮助我.虽然我没有使用任何其他Qt东西. 我正在尝试给我错误的示例是:#include <iostream>#include <QtCore/QString> #include <QtCore/QProcess> #include <QtCore/QStringList>int main() {QProcess process;QString prog = "test.exe";// Starting "test.exe":process.start(p...

c – 以编程方式检测多个物理处理器/核心,或者在Windows,Mac和Linux上是否激活超线程【代码】

我有一个多线程的c应用程序,可以在Windows,Mac和一些Linux风格上运行. 简而言之:为了使它以最高效率运行,我必须能够为每个物理处理器/核心实例化一个线程.创建比物理处理器/内核更多的线程会大大降低程序的性能.我已经可以在所有这三个平台上正确检测逻辑处理器/核心的数量.为了能够正确检测物理处理器/内核的数量,我必须检测是否支持超级交叉和活动. 因此,我的问题是,是否有办法检测是否支持和启用超线程?如果是这样,究竟如何.解...

Windows多线程编程入门笔记【代码】

每次处理并行任务时,如果要等待用户输入或依赖外部(如与灿亨控制器响应),就应该为类似的操作单独创建一个线程,这样我们的程序才不会挂起无响应。 静态库和动态库 静态库是指在程序运行前就编译完成的库,如#include行为; 动态库指在程序运行时进行链接的库,如user32.dll. 一、事件处理器和消息传递接口 该程序演示了一个只有关闭功能的窗口#include <Windows.h> //处理一些视觉特效,例如窗口,控件,枚举,样式//在创建一个应用...

c – 如果未初始化的局部变量,Windows线程堆栈保护页面机制如何工作?【代码】

在Windows OS for x86 | x64体系结构中,线程堆栈虚拟内存由“保留部分”“提交部分”,“保护页面”和“保留页面”组成. 题: 想象一下,我有1页提交内存,1MB的预留内存用于线程堆栈.我在堆栈上分配一些内存等于K页面而没有初始化. K等于例如10.似乎在堆栈开始时堆栈上的内存将由用户空间代码分配,如下所示:sub esp, K*4096当存在对保护页面的读写请求时,保护页面机制起作用. 但是我将会执行什么读取写入超出此保护页面的某些内存?...

为什么linux线程函数在windows中有效?【代码】

我正在用我的Windows机器上的cygwin包中的gcc编译这个程序#include<stdio.h> #include<pthread.h>void* thread_function(void) {printf("hello"); } int main(int argc,char *argv[]) {pthread_t thread_id[argc-1];int i;int status;printf("argc is %d ",argc-1);for(i=0;i<argc-1;i++){pthread_create (&thread_id[i], NULL , &thread_function, NULL);} for(i=0;i<argc-1;i++)pthread_join(thread_id[i],NULL); }它编译并创...

java – 给jvm的线程堆栈大小选项(-Xss)是什么?为什么Windows PC中至少有68k的限制?【代码】

我看过JVM option -Xss – What does it do exactly?这个链接,但我的问题是这个选项有用吗. 因为,如果我们为-Xss值设置了一个非常小的限制,那么线程可能无法正常工作,因为它可能会在大多数情况下抛出stackOverflow错误. 为什么这个值至少有64k的限制?我是如何得到这个64k限制的,当我试图在IntelliJ iDE上配置运行时vm选项时,我试图给出一些像10k这样的东西,它弹出这个错误,说它需要至少64k的线程堆栈大小. 另一个问题是,如何从jav...

python – 在Windows服务器上使用scrapy进行线程阻塞【代码】

我在Windows服务器上运行以下代码时出错scrapy shell "http://www.yahoo.com"但我对没有重定向到https的网站没有问题我认为问题在于线程阻塞.请有人帮帮我 这是错误消息C:\Documents and Settings\mahyar>scrapy shell "http://www.yahoo.com" 2014-03-03 15:49:38-0600 [scrapy] INFO: Scrapy 0.22.2 started (bot: scrapybot) 2014-03-03 15:49:38-0600 [scrapy] INFO: Optional features available: ssl, http11 2014-03-03 15:...

c# – 在Windows窗体中获取多个UI线程

我正在试图找到一种方法来使用户控件在他们自己的UI线程中运行.这可能吗?我试图阻止基于模块的应用程序因单个模块而崩溃. 有什么想法吗?解决方法:那是不可能的.但是,使用一些非平凡的代码,您可以在不同的线程中运行不同的窗口.每个窗口都有自己的消息循环. 更新: 您可以想到的另一种方法是以特殊方式编写控件.您可以通过创建将运行所有逻辑的新线程来处理控件中的所有事件.

c# – 哪个更适合在Windows服务,线程或计时器中使用?

嗨,我是Windows服务的新手我使用线程开发了一个Windows服务,在OnStart()中创建新线程并使用该线程运行方法并使用睡眠线程到下一次运行时但我的一位朋友说最好使用计时器比线程所以我想知道哪个是最好的方法来做这个程序?谢谢您的帮助解决方法:根据您的评论,您的目标是按特定时间间隔运行一些代码: 从概念上讲,使用计时器比使线程睡眠更好.这就是计时器的制作方法.如果您选择线程睡眠方法,我认为在实践中它仍然会正常工作,尽管更好...

c# – 线程已退出,Windows窗体中的代码为0【代码】

我在Windows窗体中退出线程时遇到问题. 我有经典的Windows窗体,它正在运行.我需要在每个时期做一些事情,所以我补充说:TimerCallback timerDelegate = new TimerCallback(this.TryDoSomething); int period = 10 * 1000; // to miliseconds System.Threading.Timer stateTimer = new System.Threading.Timer(timerDelegate, null, period, period);方法DoSomething由几个线程(主线程和这个计时器)调用,所以我这样覆盖它:private v...

Windows线程基础【代码】【图】

1、基础概念进程:操作系统为用户的每个需求活动所开辟的任务,允许用户同时在操作系统上执行多个任务。如果进程内执行某个操作让该进程暂停,那么就会切换进程,执行别的进程或等待。 进程改进:在一个任务内会有很多的内部小任务,如果这些小任务互相之间也需要共同进行,当一个进程内的某个小任务暂停,就会在进程内切换小任务或者(对于分时系统)时间耗尽,切换进程 线程:加入线程的机制后,会让用户的操作任务更加灵活,而且...