通过子线程(可成为多个线程的子线程mfpmp.exe)和线程名称判断两个线程是否为主次关系

功能描述:

两个播放器,一个为WMP,一个为MediaFundation写的exe播放器,两个播放器在播放保护视频时,都会调用windows自带的mfpmp.exe来进行播放,外部dll是主要的
程序,通过dll进行图像增强。区分主线程ID

//获得父进程ID,失败则返回0

DWORD   GetPPid()

{

HANDLE            hProcessSnap   =   NULL;

PROCESSENTRY32    pe32    =    {0};

DWORD dwPID = GetCurrentProcessId();

hProcessSnap   =   CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,   0);

if(hProcessSnap==(HANDLE)-1)

return   (FALSE);

pe32.dwSize   =   sizeof(PROCESSENTRY32);

if   (Process32First(hProcessSnap,   &pe32))

{

while(pe32.th32ProcessID!=dwPID)

Process32Next(hProcessSnap,   &pe32);

}

CloseHandle(hProcessSnap);

return(pe32.th32ParentProcessID);

}

时间: 2024-10-29 16:42:22

通过子线程(可成为多个线程的子线程mfpmp.exe)和线程名称判断两个线程是否为主次关系的相关文章

两个线程交替打印信息

看见一个关于两个线程交替打印信息的题目,题目大概是 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码. 写了两个版本,一个是用了mutex,不用条件变量:另外一个是用条件变量. 第一个,不用条件变量 1 #include <stdio.h> 2 #include <string.h> 3 #include <pthread.h> 4 5 6 7 const int LOOP_

(转载) Android两个子线程之间通信

Android两个子线程之间通信 标签: classthreadandroid子线程通信 2015-03-20 17:03 3239人阅读 评论(0) 收藏 举报  分类: 个人杂谈 版权声明:本文为博主原创文章,未经博主允许不得转载. Android中,相信主线程和子线程之间的通信大家都不陌生了吧.在一次面试经历中被问到了两个子线程之间是如何进行通信的.哎呦!这可蒙住我了.后来回家研究了下,分享给大家. 其实android中线程通信无非就是handler和looper的操作. 一般情况下的主线

Android两个子线程之间通信

Android中,相信主线程和子线程之间的通信大家都不陌生了吧.在一次面试经历中被问到了两个子线程之间是如何进行通信的.哎呦!这可蒙住我了.后来回家研究了下,分享给大家. 其实android中线程通信无非就是handler和looper的操作. 一般情况下的主线程和子线程之间的通信,都是通过主线程中的handler把子线程中的message发给主线程中的looper,或者,主线程中的handler通过post向looper中发送一个runnable.looper默认存在于main线程中.那么子线

创建两个线程模拟火车站两个窗口售票程序

题目:创建两个线程模拟火车站两个窗口售票程序,窗口售票时间为1秒,两个窗口不能同时售票 #include<Windows.h> #include<iostream> using namespace std; //这是2个线程模拟买火车票的小程序 DWORD WINAPI Fun1Proc(LPVOID lpParameter);//thread data DWORD WINAPI Fun2Proc(LPVOID lpParameter);//thread data int inde

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1

1 public class Test { 2 3 // 采用 Runnable 接口方式创建的多条线程可以共享实例属性 4 private int i ; 5 6 // 同步增加方法 7 private synchronized void inc(){ 8 i ++; 9 System. out .println(Thread.currentThread().getName()+ "--inc--" + i ); 10 } 11 // 同步减算方法 12 private synchr

Java多线程通信之两个线程分别打印AB各10次

一道经典的面试题目:两个线程,分别打印AB,其中线程A打印A,线程B打印B,各打印10次,使之出现ABABABABA.. 的效果 1 package com.shangshe.path; 2 3 public class ThreadAB { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 10 final Print business = new Print(); 11 12 new Threa

两个线程并发执行以下代码,假设a是全局变量,那么以下输出______是不可能的?

3.两个线程并发执行以下代码,假设a是全局变量,那么以下输出______是不可能的? void foo(){    ++a;    printf("%d ",a);}A.3 2    B.2 3    C.3 3    D.2 2  1.读a            5.读a2.a+1            6.a+13.写a            7.写a4.打印a          8.打印a B:12345678C:12356784(或48)D:15234678

两个线程同时调用一个函数会出现什么情况?

最近在研究多线程,然后突然想到如果两个线程同时访问一个函数的话,要不要加锁呢,加锁怎么加,不加又怎样这样的问题..然后去网上找了些帖子学习学习...... 上面的代码明显执行串了!!!! 函数本身只是代码,代码是只读的,无论多少个线程同时调用都无所谓,因为是只读嘛.但是函数里面总要用到暑假 ,如果数据属性线程级别(比如函数形参-->局部变量-->存在栈上-->每个线程都有自己的栈),那么同时调用是没关系的,因为用的都是本线程的数据;但是如果函数用到一些全局数据,比如全局变量,根据堆内存首

两种线程不安全escaped state以及hidden mutable

hidden mutable state和escaped state是两种线程不安全问题:两者原因不同,前者主要是由于类成员变量中含有其他对象的引用,而这个引用是immutable的:后者是成员方法的返回结果类型需要注意,否者都会引起线程安全问题 1.关于hidden mutable state问题: 注意成员变量如果是另一个对象的引用情况 这个问题简而言之就是说一个类的成员变量有可能是暗含状态的,就是说成员是一个对象的引用哪个对象是有状态的,虽然这个引用可能定义为final不可变的但依然不是线