免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1328 | 回复: 0
打印 上一主题 下一主题

线程pthread [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-03 15:27 |只看该作者 |倒序浏览

                1 pthread_creat.c
               
               
                /*
*gcc thread_creat2.c -o thread_creat2 -lpthread
*/
#include pthread.h>
#include stdio.h>
/* print_function 的参数 */
struct char_print_parms
{
    /* 用于输出的字符 */
    char character;
    /* 输出的次数 */
    int count;
};
/* 按照 PARAMETERS 提供的数据,输出一定数量的字符到stderr。
* PARAMETERS 是一个指向 struct char_print_parms 的指针 */
void* char_print (void* parameters)
{
    /* 将参数指针转换为正确的类型 */
    struct char_print_parms* p = (struct char_print_parms*) parameters;
    int i;
    for (i = 0; i  p->count; ++i)
        fputc (p->character, stderr);
    return NULL;
}
/* 主程序 */
int main ()
{
    pthread_t thread1_id;
    pthread_t thread2_id;
    struct char_print_parms thread1_args;
    struct char_print_parms thread2_args;
    /* 创建一个线程输出 30000 个 x */
    thread1_args.character = 'x';
    thread1_args.count = 30000;
    pthread_create (&thread1_id, NULL, &char_print, &thread1_args);
    /* 创建一个线程输出 20000 个 o */
    thread2_args.character = 'o';
    thread2_args.count = 20000;
    pthread_create (&thread2_id, NULL, &char_print, &thread2_args);
    /* 确保第一个线程结束 */
    pthread_join (thread1_id, NULL);
    /* 确保第二个线程结束 */
    pthread_join (thread2_id, NULL);
    return 0;
}
2 detached.c
               
                /*detached.c 创建脱离线程的原型程序*/
#include pthread.h>
void* thread_function (void* thread_arg)
{
    /* 这里完成工作……*/
}
int main ()
{
    pthread_attr_t attr;
    pthread_t thread;
    pthread_attr_init (&attr);
    pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
    pthread_create (&thread, &attr, &thread_function, NULL);
    pthread_attr_destroy (&attr);
    /* 进行其它工作……*/
    /* 不需要等待第二个线程 */
    return 0;
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43090/showart_2170252.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP