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);
}
分享到:
相关推荐
### 并发服务器—多线程服务器详解 #### 一、引言 在现代软件开发中,特别是网络应用和服务的设计中,对并发处理能力的需求日益增长。为了满足高并发访问的需求,开发人员常采用多线程技术来构建高效、响应迅速的...
- 支持C/C++语言标准库中的多线程API。 **多线程的益处** - **提高应用程序的响应**: 多线程能够处理用户输入和其他事件,使得程序更加响应迅速。 - **有效使用多处理器**: 利用现代多核处理器的优势,通过并行...
在iOS开发中,多线程任务是至关重要的一个部分,特别是在处理复杂的用户界面更新和后台数据加载时。本文将深入探讨iOS中的多线程技术,包括基础概念、使用场景以及如何实现。 首先,多线程是指在一个应用程序中同时...
《Programming with POSIX Threads》是David Butenhof撰写的一本经典教程,主要针对Unix/Linux环境下的多线程程序设计。本书深入浅出地介绍了POSIX线程(也称为pthreads)API,是理解并掌握多线程编程的重要参考资料...
**CC++多线程编程**是现代软件开发中的重要组成部分,尤其在高性能计算、服务器端应用和实时系统中,多线程技术能充分利用多核处理器的资源,提高程序的执行效率。以下是一些关于CC++多线程编程的核心知识点: 1. *...
线程在多线程编程中扮演着至关重要的角色,它们允许程序并发执行多个任务,提高处理器的利用率。在操作系统中,线程分为两种状态:可结合的(joinable)和分离的(detached)。理解这两种状态及其差异对于有效管理...
### 多线程编程指南:深入理解与应用 #### 多线程基础介绍 多线程编程是指在单个程序中同时运行多个线程的技术,它允许程序在多个CPU核心或处理器上并行执行任务,从而提高程序的执行效率和响应速度。在《多线程...
- **C/C++标准库支持:**通过标准库提供了多线程的支持,例如`<thread>`库。 - **多线程的益处:** - **提高应用程序响应性:**通过并行执行任务,可以显著提高应用程序的响应速度。 - **有效利用多处理器:**...
下面我们将深入探讨这个主题,包括多线程的基本概念、Linux环境下的C语言编程以及字符分配策略。 首先,多线程是操作系统中的一种机制,它允许一个进程内存在多个并发执行的线程。在C语言中,我们可以使用POSIX线程...
本实例集主要针对Linux环境下的C语言多线程编程,旨在帮助开发者深入理解和实践多线程的创建、同步、通信以及管理等关键概念。 1. **线程创建**: 在Linux中,多线程通常通过POSIX线程库(pthread)实现。`pthread...
Linux 多进程多线程编程是指在 Linux 操作系统下使用 C 语言进行多进程和多线程编程的技术。该技术可以大幅度提高程序的执行效率和响应速度,提高系统的并发能力和资源利用率。 1. 创建缺省线程 在 Linux 系统下,...
Linux多线程编程是开发高效率、高性能应用的重要技术之一,尤其在C语言环境中,它提供了直接和底层的控制。本文主要围绕Linux下C语言实现的多线程编程进行知识点总结,涉及线程与进程的区别、多线程的优势、Pthreads...
为了保持界面的流畅性,它通常与接收和发送线程分离,避免因网络操作阻塞UI。 4. **同步机制**:在多线程环境中,数据共享可能会引发竞态条件,导致错误的结果。C++提供多种同步工具,如互斥量(mutex)、条件变量...
这一标准为UNIX系统提供了一个统一的C语言多线程编程接口,使得开发人员能够编写跨平台的多线程程序。 - **为什么选择Pthreads?** - 由于历史原因,不同的硬件供应商会实现自己的专有线程版本,这给软件开发者带来...
- **ANSI C/C++**: 提供了必要的语言特性来支持多线程编程。 **多线程的益处** - **提高应用程序的响应**: 通过异步处理任务,提高用户体验。 - **有效使用多处理器**: 利用现代多核处理器的能力,提高计算效率。 ...
综上所述,MFC多线程技术通过工作者线程和用户界面线程的分离,实现了高效且流畅的应用程序执行。开发者需要理解线程间通信、线程安全和调试技巧,才能充分发挥多线程的优势,创建出健壮的MFC应用程序。