`
deepfuture
  • 浏览: 4413026 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80136
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70372
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103608
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286603
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15056
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67828
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32293
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46075
社区版块
存档分类
最新评论

c-多线程-分离线程

阅读更多

  gcc -std=c99 -lpthread -o main main.c

#include <pthread.h>
#include <stdio.h>

void *mycompadd(void *xx){//参数必须为void *,然后进行强制类型转换
  int sum=0; 
  int *x=(int *)(xx);
  int y;
  for (int i=0;i<*x;i++){
    sum+=i;
  }
  printf("add%d\n",sum);
}
void  *mycompchen(void *xx){//参数必须为void *,然后进行强制类型转换
  int sum=1; 
  int *x=(int *)(xx);
  for (int i=1;i<=*x;i++){
    sum*=i;  
  }
  printf("chen%d\n",sum);   
}


int main(){
  //线程分离后,不能再合并
  //main为boss线程,
  pthread_t threada,threadb,threadc;
  pthread_attr_t detachedatrr;
  //创建worker线程,并执行线程
  int n=5;
  //深未来技术原创,http://deepfuture.iteye.com
  pthread_create(&threada,NULL,mycompadd,&n);//线程,线程属性,函数,参数。线程默认可合并
  pthread_create(&threadb,NULL,mycompchen,&n);//线程,线程属性,函数,参数。线程默认可合并
  
  pthread_attr_init(&detachedatrr);  //初始化线程属性对象
  pthread_attr_setdetachstate(&detachedatrr,PTHREAD_CREATE_DETACHED);//直接设置线程的可分离属性,不可合并,PTHREAD_CREATE_JOINABLE为可合并,PTHREAD_CREATE_DETACHED为可分离,设置可分离后,不能再合并
  pthread_create(&threadc,&detachedatrr,mycompchen,&n);//线程,线程属性,函数,参数,这个线程是不可合并,可分离的,通过线程属性直接设定的。
  
  pthread_detach(threadb);//动态分离线程threadb
  //wait worker线程,并合并到BOSS线程来
  pthread_join(threada,NULL);
  return(0);
}
1
0
分享到:
评论

相关推荐

    并发服务器-多线程服务器详解

    ### 并发服务器—多线程服务器详解 #### 一、引言 在现代软件开发中,特别是网络应用和服务的设计中,对并发处理能力的需求日益增长。为了满足高并发访问的需求,开发人员常采用多线程技术来构建高效、响应迅速的...

    多线程编程指南 多线程编程指南

    - 支持C/C++语言标准库中的多线程API。 **多线程的益处** - **提高应用程序的响应**: 多线程能够处理用户输入和其他事件,使得程序更加响应迅速。 - **有效使用多处理器**: 利用现代多核处理器的优势,通过并行...

    ios-多线程任务(想过来装逼而已).zip

    在iOS开发中,多线程任务是至关重要的一个部分,特别是在处理复杂的用户界面更新和后台数据加载时。本文将深入探讨iOS中的多线程技术,包括基础概念、使用场景以及如何实现。 首先,多线程是指在一个应用程序中同时...

    (中英文)-POSIX多线程程序设计-Programming with POSIX Threads

    《Programming with POSIX Threads》是David Butenhof撰写的一本经典教程,主要针对Unix/Linux环境下的多线程程序设计。本书深入浅出地介绍了POSIX线程(也称为pthreads)API,是理解并掌握多线程编程的重要参考资料...

    CC++多线程编程练习题大全

    **CC++多线程编程**是现代软件开发中的重要组成部分,尤其在高性能计算、服务器端应用和实时系统中,多线程技术能充分利用多核处理器的资源,提高程序的执行效率。以下是一些关于CC++多线程编程的核心知识点: 1. *...

    分离状态创建线程

    线程在多线程编程中扮演着至关重要的角色,它们允许程序并发执行多个任务,提高处理器的利用率。在操作系统中,线程分为两种状态:可结合的(joinable)和分离的(detached)。理解这两种状态及其差异对于有效管理...

    多线程编程指南(sun公司出品)

    ### 多线程编程指南:深入理解与应用 #### 多线程基础介绍 多线程编程是指在单个程序中同时运行多个线程的技术,它允许程序在多个CPU核心或处理器上并行执行任务,从而提高程序的执行效率和响应速度。在《多线程...

    linux多线程编程指南

    - **C/C++标准库支持:**通过标准库提供了多线程的支持,例如`&lt;thread&gt;`库。 - **多线程的益处:** - **提高应用程序响应性:**通过并行执行任务,可以显著提高应用程序的响应速度。 - **有效利用多处理器:**...

    多线程实现文件中字母数字及其他字符的分配

    下面我们将深入探讨这个主题,包括多线程的基本概念、Linux环境下的C语言编程以及字符分配策略。 首先,多线程是操作系统中的一种机制,它允许一个进程内存在多个并发执行的线程。在C语言中,我们可以使用POSIX线程...

    linux C 多线程编程典型实例

    本实例集主要针对Linux环境下的C语言多线程编程,旨在帮助开发者深入理解和实践多线程的创建、同步、通信以及管理等关键概念。 1. **线程创建**: 在Linux中,多线程通常通过POSIX线程库(pthread)实现。`pthread...

    linux 多进程多线程编程

    Linux 多进程多线程编程是指在 Linux 操作系统下使用 C 语言进行多进程和多线程编程的技术。该技术可以大幅度提高程序的执行效率和响应速度,提高系统的并发能力和资源利用率。 1. 创建缺省线程 在 Linux 系统下,...

    Linux多线程编程知识点总结(C语言)(csdn)————程序.pdf

    Linux多线程编程是开发高效率、高性能应用的重要技术之一,尤其在C语言环境中,它提供了直接和底层的控制。本文主要围绕Linux下C语言实现的多线程编程进行知识点总结,涉及线程与进程的区别、多线程的优势、Pthreads...

    C++多线程网络聊天程序 .zip

    为了保持界面的流畅性,它通常与接收和发送线程分离,避免因网络操作阻塞UI。 4. **同步机制**:在多线程环境中,数据共享可能会引发竞态条件,导致错误的结果。C++提供多种同步工具,如互斥量(mutex)、条件变量...

    Posix多线程编程

    这一标准为UNIX系统提供了一个统一的C语言多线程编程接口,使得开发人员能够编写跨平台的多线程程序。 - **为什么选择Pthreads?** - 由于历史原因,不同的硬件供应商会实现自己的专有线程版本,这给软件开发者带来...

    sun多线程编程 linux下多线程

    - **ANSI C/C++**: 提供了必要的语言特性来支持多线程编程。 **多线程的益处** - **提高应用程序的响应**: 通过异步处理任务,提高用户体验。 - **有效使用多处理器**: 利用现代多核处理器的能力,提高计算效率。 ...

    MFC多线程 工作者线程 用户界面线程

    综上所述,MFC多线程技术通过工作者线程和用户界面线程的分离,实现了高效且流畅的应用程序执行。开发者需要理解线程间通信、线程安全和调试技巧,才能充分发挥多线程的优势,创建出健壮的MFC应用程序。

Global site tag (gtag.js) - Google Analytics