草庐IT

pthread_self

全部标签

c++ - 在 c++ 的 Windows 线程编程中,pthread_setcanceltype 的替代方案是什么?

在c++的windows线程编程中,pthread_setcanceltype的替代方案是什么? 最佳答案 Windows线程没有取消点,因此无需考虑系统取消类型。因此,在Windows上“取消”一个线程意味着您,开发人员,需要想出一个策略来告诉线程退出。如果它是GUI线程,您可以向其发送WM_QUIT消息。如果它是一个非GUI线程,那么它真的取决于线程在做什么。您需要分析线程并查看是否存在代码可以明确检查线程是否需要继续运行或退出的点。有一个pthreads-win32如果您宁愿避免该问题并在Win32上获得pthreads投诉行

windows - 使用 Windows 线程时,是否可以指定一个缓冲区用于线程的堆栈,类似于 pthread_attr_setstack()?

pthreads允许用户提供一block内存用于线程堆栈:size_tstack_size=1024*1024*4;void*stack=malloc(stack_size);pthread_attr_tattributes;pthread_attr_init(&attributes);pthread_attr_setstack(&attributes,stack,stack_size);pthread_tthread_id;pthread_create(&thread_id,&attributes,worker_function,NULLWindows线程是否提供类似的功能?Crea

java - JAR 文件如何 self 删除?

我需要一个JAR文件来删除自身。问题是Windows在运行时锁定了JAR文件,无法直接删除自身。我研究了批处理脚本可以终止JAR进程然后删除文件的解决方案,但是System.exit(0)是不需要的,因为它不能通过Batch文件运行。taskkill/F/IM"java.exe"是不需要的,因为它会杀死ALLJava进程。jps无法使用becauseitisonlyavailableintheJDK并且用户可能会运行JRE,这样会失败。我一直在寻找一种解决方案,它可以让我使用Java代码找到当前JAR的PID,然后写出Batch命令并插入终止进程的PID,例如像下面这样:printWr

windows - Windows 上的 self 更新 Exe 文件

我正在尝试创建一个脚本,当它在服务器上检测到新版本时将“self更新”。最初我的想法是,当检测到新版本时,下载文件,然后启动一个DOS批处理文件,用新版本简单地覆盖原始exe。我想,我可以使用sytem(startupdate.bat)然后立即退出0;.bat文件等待几秒钟,然后尝试删除旧的exe。这失败了,我猜是因为即使在使用system(start...)时,新的“进程”实际上是同一个进程,这是正确的吗?有什么方法可以在Windows中从perl启动一个全新的进程,这样我就可以删除.exe?或者是否有更好的不同方法?谢谢,埃里克·塞弗特 最佳答案

c++ - 你如何为 x64 编译静态 pthread-win32 库?

看起来已经做了一些工作来制作pthread-win32使用x64,但没有构建说明。我曾尝试使用VisualStudiox64交叉工具命令提示进行简单构建,但是当我尝试从x64应用程序链接到lib时,它看不到任何函数导出。它似乎仍在将lib编译为x86或其他东西。我什至尝试过将/MACHINE添加到makefile的适当位置,但没有帮助。有人让这个工作吗? 最佳答案 您可以使用vcpkghere.这是C++的Windows包管理器。它支持pthread构建以及其他开源库。我想使用静态pthread库。当我下载pthread时,我得到了

java - 如何在 Java 中实现 Kerberos 协议(protocol)转换? (S4U2 self )

编辑现在我知道我需要什么了。我需要在Java中实现Kerberos协议(protocol)转换(S4U2Self)。.Net中有示例,但没有Java示例。有这个第三方库QuestSingleSignonforJava声称这样做。我已经下载了JAR,它看起来不错,但我宁愿使用自定义实现而不是别人的代码(必须付费)。任何人都可以提前了解需要完成的工作吗?是否有任何现有的开放JavaAPI来处理此问题?谢谢之前的问题目前我的应用程序只知道用户ID,我需要使用Kerberos对该用户进行身份验证,创建服务票据并使用它来访问第三方服务。我的应用程序需要充当代理,需要代表提供的用户ID向第三方服务

windows - 微星/WIX : How to (self-)update a running service

我必须编写一个自动更新服务来更新我们公司在客户端PC上的应用程序。要更新的应用程序之一是更新程序本身。我使用使用WIX创建的MSI包部署所有应用程序。然后该服务使用“msiexec.exe/q/i”生成一个进程以开始静默安装。这适用于其他产品,但当我想更新正在运行的服务时,该服务是启动调用安装程序的进程的服务。因此,我正在尝试更新正在运行的进程。我该怎么做?“fork”安装程序进程并退出服务?使用一些聪明的Windows内置方法? 最佳答案 感谢您的意见,这是我想出的:我正在使用具有MajorUpgrade支持和ServiceIns

.net - 对于 Windows 窗体,PostMessage 与 self 的等价物是什么?

我正在编写一个派生自System.Windows.Forms.Control的自定义控件.控件正在使用Control.KeyDown事件,以观察击键:我应该将一些击键(例如-K)作为热键处理,这会导致我启动一个对话框。如果我从我的onKeyDown启动对话框事件处理程序,在我设置KeyEventArgs.SuppressKeyPress之前显示对话框至true并返回(因此我无法抑制K按键)。相反,我想从onKeyDown返回事件处理程序,然后启动对话框。为此,在我从onKeyDown返回后事件处理程序我需要以某种“启动对话框”事件以某种方式再次调用。在Win32上,我可以使用PostM

php - 在 php 中使用 pthread 进行后台处理

我正在尝试使用pthread在php中实现多线程发送电子邮件。这里的基本思想是将电子邮件作为后台作业发送,这样用户就不必等待任务完成。我有一项服务,用户PHPMailer发送电子邮件及其工作正常。我正在使用以下代码进行多线程classThreadWorkerServiceextends\Thread{private$_runMethod;private$_vars;private$_autoloderPath;function__construct($vars){$this->_vars=$vars;$reflector=new\ReflectionClass('Composer\Au

c - 当 pthread 在等待互斥体时死亡会发生什么?

如果一个进程有三个线程,T1、T2和T3,并且所有三个线程都试图获取互斥锁M1上的锁,我理解一个将获取互斥锁,而另外两个将等待直到它们获取互斥锁。如果我使用pthread_mutexattr_setrobust()使线程健壮,那么我明白如果T1持有M1,并且T1在释放M1之前终止,T2将被EOWNERDEAD的返回值唤醒。然后T2可以清理protected资源的状态。现在,如果T1拥有M1而T2和T3正在等待M1,会发生什么情况。T2终止。发生什么了?当T1释放M1时,互斥体是否直接进入T3?T3是否获得了EOWNERDEAD,或者它只是看起来T3就像什么都没有发生并且不需要清理?似乎