Articles of multithreading

在Windows中join相当于

我如何等待一个线程在Windows中死亡? 这就是我想我的代码看起来像: main thread: creating thread: thread1 waiting for thread1 to die //rest of the code 我正在使用Win32 API。

在Linux上工作的线程限制与networking/ IO绑定应用程序的进程相比有什么限制?

我听说在linux下的多核服务器上,当你只有一个进程但是multithreading时,不可能达到最高性能,因为Linux对IO有一些限制,所以在8核心服务器上有8个线程的进程可能是比8个进程慢。 任何意见? 还有其他的限制,可能会减慢应用程序? 这些应用程序是一个networkingC ++应用程序,服务于100多个客户端,有一些磁盘IO。 更新:我担心除了我自己实现的锁之外,还有一些与IO相关的问题…在几个线程中执行simultaniousnetworking/磁盘IO没有任何问题吗?

Java线程优先级不起作用

这是一个关于线程优先级的testing。 代码来自Thinking in Java p.809 import java.util.concurrent.*; public class SimplePriorities implements Runnable { private int countDown = 5; private volatile double d; // No optimization private int priority; public SimplePriorities(int priority) { this.priority = priority; } public String toString() { return Thread.currentThread() + ": " + countDown; } public void run() { Thread.currentThread().setPriority(priority); while (true) […]

如何从win32进程获取线程句柄列表?

是否有可能获得在任何给定的时间线程句柄列表的当前进程在Win32(在C + +)?

在Java中创build的线程在Windows和Linux上的行为是否有所不同?

据我所知,Java正在使用操作系统线程(与Erlang相比),这意味着在Windows和Linux上使用Java创build的线程可能会有所不同。 Windows和Linux上的Java线程有什么不同? 最大的区别是什么? 这可能只是performance上的差异?

沙盒AppDomain中的线程安全性

我有一个应用程序域来托pipe不受信任的代码/程序集。 我用安全属性解决了所有安全问题,效果很好。 不受信任的代码在专用线程上运行。 CLR是2.0。 这就是我AppDomainShell AppDomainSeed ,壳牌运行在主域,种子是信任的代理/助手在不受信任的域。 我有兴趣限制创build新线程和改变优先级 。 目前我的不受信任的程序集可以通过创build10k个线程来设置ThreadPriority.Highest或终止操作系统。 有SecurityPermissionFlag.ControlThread,但可以防止像Abort()这样的高级操作。 我在看Thread类的实现,对于那些简单的操作,C#API没有声明性的安全性,其余的实现是本地的。 我想我可以使用一些Win32函数来禁止在操作系统级别。 但是操作系统如何识别不可信任的线程/代码/程序集呢? SetThreadPrincipal() ? 有什么CLR的API可以被滥用? 我更喜欢解决scheme,而不需要安装和便携式单声道: – / hmmm。 任何其他的想法欢迎。 谢谢!

Helgrind for Windows?

Helgrind是Valgrind工具,用于检测使用POSIX pthreads线程原语的C,C ++和Fortran程序中的同步错误。 任何人都知道一个等效的窗口工具? 谷歌search后,我还没有find任何东西…

优雅地终止一个线程不使用TerminateThread()

我的应用程序创build一个线程,并始终在后台运行。 我只能手动终止线程,而不能从线程callback函数中。 目前我正在使用TerminateThread()来杀死那个线程,但是它有时会导致它挂起。 我知道有一种方法来使用事件和WaitForSingleObject() ,使线程优雅地终止,但我找不到一个例子。 请在这里需要代码。

线程ID与线程句柄

一个尴尬的问题:线程ID和线程句柄有什么区别? 为什么都需要? Windows和Linux有什么不同?

在Windows下获取新线程/删除线程的通知

当你创build一个DLL时,你可以在DllMain函数(DLL_THREAD_ATTACH / DLL_THREAD_DETACH)中得到关于新线程/退出线程的通知。 有没有办法在(非托pipe)可执行文件中从Windows获取这些或等效的通知?