c语言多线程_c语言多线程编程实例
因为您传入的是t的地址:rc = pthread_create(&thread[t], NULL, PrintHello, &t);
所以在PrintHello函数中thread_arg = (int)(*((int*)args));读取时会读取到t的最新值,即8.
这是因为主线程一直在执行,for( t = 0; t < NUM_THREADS; t++ )很快执行完,跳出循环t的值为8,而在PrintHello中sleep(1);肯定会读取到t的最新值8.
直接传t的值即可,如下:
#include<stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h> // 加入这个头文件
#include <pthread.h>
#include <unistd.h>
#define NUM_THREADS 8
void *PrintHello(void *args)
{
int thread_arg;
sleep(1);
thread_arg = (int)(uintptr_t)args; //这样读取传来的t的值
printf("Hello from thread %d\n", thread_arg);
return NULL;
}
int main(void)
{
int rc,t;
pthread_t thread[NUM_THREADS];
for( t = 0; t < NUM_THREADS; t++ )
{
printf("Creating thread %d\n", t);
rc = pthread_create(&thread[t], NULL, PrintHello, (void *)(uintptr_t)t); // 这样传t的值
if (rc)
{
printf("ERROR; return code is %d\n", rc);
return EXIT_FAILURE;
}
}
sleep(5);
for( t = 0; t < NUM_THREADS; t++ )
pthread_join(thread[t], NULL);
return EXIT_SUCCESS;
}
-
佚名2024-06-02 12:18:53
问C语言怎么写线程代码
答通常使用CreateThread函数来创建新的线程.(Unix下使用pthread_create函数)首先指出,线程与线程之间,是并列关系,不会存在"父子线程"...
-
佚名2024-06-02 17:54:59
问c语言 在一个线程上开辟一段内存;
答我实在没有时间写,给你一个大体的框架class A{ char *buf=NULL public: void* create_...
-
佚名2024-06-02 23:37:03
问C语言线程简单例题
答您好,这样的:通过pthread_join得到的终止状态是不同的,总结如下:1.如果thread线程通过return返回,rval_ptr所指向的单元里存放的是...
-
佚名2024-06-02 20:54:46
问一个C语言线程问题
答可以,用struct
-
佚名2024-06-02 15:55:23
问c语言怎么创建线程和使用
答用 pthread_t创建线程名字。然后pthread_create开辟线程。具体使用。比如有一个函数 void *hello(){printf("create...
-
佚名2024-06-02 02:59:26
问C语言如何使用线程池中的某个线程
答问别人问题,还这么牛叉,真心佩服不要给线程派任务,让线程空闲的时候,自己去领任务
-
佚名2024-06-02 02:22:37
问c语言创建线程的时候实质上做了什么?
答#include#include#include#include#include#define MAX 10pthread_t thread[2];pthrea...
-
佚名2024-06-02 02:26:08
问C语言视频教程推荐
答还是要把一般呢书看完 边看边做,观看视频还是不够的 推荐一本 C primer Plus
-
佚名2024-06-02 08:00:00
问如何用c或c++语言编写程序?
答分析: 从坐标(0,0)到(1,1)每次只能沿x或y方向移动一个单位,则移动到坐标(1,1)需要的步骤是|1-0|+|1-0|,等于两个坐标点的x坐标差的绝...
-
佚名2024-06-02 08:00:00
问C#多线程简单例子
答这是正确的。因为新建的线程在运行前,主线程已经结束了。如果t.Start() 后有更多费时的操作的话,那可能结果是你想要的那样!
风水
起名
网名
- 1 网名带符号简短
- 2 微博舞蹈老师的网名
- 3 qq女生霸气网名锦字
- 4 关于他的qq网名
- 5 微信群昵称可以两行吗
- 6 对方打过来显示昵称
- 7 一起来跳舞用什么昵称
- 8 好听的酷狗昵称两个字英文
- 9 好看简短的英文昵称
- 10 昵称52
说说
- 1 家字个性签名
- 2 关于刺猬的个性签名
- 3 假日的说说
- 4 关于包包的说说
- 5 想念初恋的说说
- 6 媳妇不是保姆的说说
- 7 不想管太多的说说好累
- 8 说说你们变声后又长了多少
- 9 无奈离去背影的说说
- 10 新年拜神说说