| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1061 人关注过本帖
标题:window下多线程分时操作问题 新手....
取消只看楼主 加入收藏
非死亡!
Rank: 8Rank: 8
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
注 册:2011-10-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
window下多线程分时操作问题 新手....
程序代码:
//总共5个进程  主进程输出1  Printer_ThreadOne输出2,3,4  Printer_ThreadTwo输出5
#define WIN32_LEAN_AND_MEAN  

#include <windows.h>       
#include <windowsx.h>       
#include <stdio.h>

// 宏定义 ////////////////////////////////////////////////////////////////////////////////

#define MAX_NUM 3 

// 原型 /////////////////////////////////////////////////////////////////////////////

DWORD WINAPI Printer_ThreadOne(LPVOID data);
DWORD WINAPI printer_ThreadTwo(LPVOID data);

// 函数 //////////////////////////////////////////////////////////////////////////////

DWORD WINAPI Printer_ThreadOne(LPVOID data)
{

for (int index = 0; index < 25; index++)
    {
    printf("one线程%d\n",(int)data+1);  //加一
    Sleep(500);                
    }
   
   return((DWORD)data);
} 




DWORD WINAPI printer_ThreadTwo(LPVOID data)
{
    for(int index = 0; index < 25; index++)
    {
        printf("two线程:%d\n",(int)data+2); //加二
        Sleep(500);
    }
   
    return((DWORD)data);
}

// 主函数 //////////////////////////////////////////////////////////////////////////////////

int main(void)
{

HANDLE thread_handle[MAX_NUM+1];
DWORD  thread_id[MAX_NUM+1]; 



printf("开始线程\n");


//创建3个线程
for (int index = 0; index < MAX_NUM; index++)
    {

    thread_handle[index] = CreateThread(NULL,             
                                        0,               
                                           Printer_ThreadOne,    
                                        (LPVOID)(index+1),    
                                        0,               
                                        &thread_id[index]);
    }
//创建第四的线程

    thread_handle[3] = CreateThread(NULL,             
                                    0,               
                                       printer_ThreadTwo,    
                                    (LPVOID)3,    
                                    0,           
                                    &thread_id[3]);
                                       
                                       
                                       
//主进程////////////////////////////////////////////
for (index=0; index<75; index++)
    {
    printf("主线程%d\n",1);
    Sleep(500);

    }


//关闭句柄///////////////////////////////////////
for (index=0; index<MAX_NUM; index++)
    CloseHandle(thread_handle[index]);
    CloseHandle(thread_handle[    3]);


printf("\n结束了线程\n");

return 0;

}
在输出的时候 按理是循环输出 怎么开始是是乱输出的啊?  在运行了一定时间才循环,那么开始一段时间分时操作是随机选择线程的吗? 还是我的电脑有问题啊?  就高手解答啊. 百度了一下.....未果
搜索更多相关主题的帖子: window 多线程 color 
2012-02-26 20:05
非死亡!
Rank: 8Rank: 8
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
注 册:2011-10-31
收藏
得分:0 
小顶一下 .......

能力 技巧
2012-02-26 22:56
快速回复:window下多线程分时操作问题 新手....
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013715 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved