pthread_create() 中 arg 最好是一个通用的数据结构

上述的问题在猜测, 还未完成值的传递,复制,线程就已经开始运行了, 我用strace 可以猜测下
但是传递一个通用的数据结构,像线程池中的用法就非常nice,初始设计大概也是为了那样使用吧

gdb 添加断点 查看问题

综上: 先完成线程的创建,在开始值传递
C 的 for 循环贼快, 值的赋值和复制也很快

#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>pthread_mutex_t mutex;
pthread_cond_t cond;static char id  = 'A';void* progess(void* arg)
{pthread_mutex_lock(&mutex);//printf("thread name: %c thread index: %#x\n",id++,(uint32_t)pthread_self());printf("thread name: %d thread index: %#x\n",*((char*)arg),(uint32_t)pthread_self());sleep(1);pthread_mutex_unlock(&mutex);return NULL;
}int main(void){int ret = pthread_mutex_init(&mutex,NULL);if(ret !=0){perror("mutex_init");}pthread_cond_init(&cond,NULL);char i,j;pthread_t *tid = (pthread_t*)malloc(sizeof(pthread_t)*128);//for( i = 65,j =0 ; j < 20 ; i++,j++ ){//  pthread_create(&tid[j],NULL,progess,NULL);//}for( i = 65,j =0 ; j < 20 ; i++,j++ ){pthread_create(&tid[j],NULL,progess,(void*)&j);}for(i = 0 ; i < 20 ; i++){pthread_join(tid[i],NULL); //回收线程资源}free(tid);while(1){sleep(1);}
}

线程中应该注意的问题相关推荐

  1. java线程的异常无法捕获异常_Java如何从线程中捕获异常

    我有Java主类,在该类中,我启动了一个新线程,在主类中,它等待线程死亡.在某个时刻,我从线程中抛出了运行时异常,但是我无法在主类中捕获从线程中抛出的异常. 这是代码: public class Te ...

  2. DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁

    之前的几篇文章已经讲解了在DllMain中创建并等待线程导致的死锁的原因.是否还记得,我们分析了半天汇编才知道在线程中的死锁位置.如果对于缺乏调试经验的同学来说,可能发现这个位置有点麻烦.那么本文就介 ...

  3. 获取线程中抛出的异常信息

    1 ScheduledExecutorService service = Executors.newScheduledThreadPool(10); 2 // 从现在开始delay毫秒之后,每隔一天执 ...

  4. python3线程中的锁机制

    1.锁的形象解释 有一个奇葩的房东,他家里有两个房间想要出租.这个房东很抠门,家里有两个房间,但却只有一把锁,不想另外花钱是去买另一把锁,也不让租客自己花钱加锁.这样租客只有先租到的那个人才能分配到锁 ...

  5. python如何次传参给线程_python如何给线程中的函数传参?

    1.Process说明 (1)概念 process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. (2)语法([group [, target [, name [, args [, k ...

  6. 用Handler的post()方法来传递线程中的代码段到主线程中执行

    自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了.Handler的post()方法 ...

  7. 一个线程中lock用法的经典实例

    1 /* 2 该实例是一个线程中lock用法的经典实例,使得到的balance不会为负数 3 同时初始化十个线程,启动十个,但由于加锁,能够启动调用WithDraw方法的可能只能是其中几个 4 作者: ...

  8. 【Based Android】Android Sensor感应器介绍(二)线程中刷新UI 创建一个android测力计...

    上一篇文章http://www.cnblogs.com/octobershiner/archive/2011/11/06/2237880.html介绍了sensor的基本知识以及一个使用其中加速度感应 ...

  9. 线程中CreateEvent和SetEvent及WaitForSingleObject的用法

    原文:线程中CreateEvent和SetEvent及WaitForSingleObject的用法

  10. java主线程捕获子线程中的异常

    java主线程捕获子线程中的异常 参考文章: (1)java主线程捕获子线程中的异常 (2)https://www.cnblogs.com/jpfss/p/10272726.html (3)https ...

最新文章

  1. 隐马尔科夫模型(HMM)解释 和 前向与后向算法[转] 讲解通俗易懂 赞
  2. 计算机科学界至今未解决的四大难题
  3. linux内核 task_struct 中自旋锁的应用
  4. python pandas dataframe 行列选择,切片操作 原创 2017年02月15日 21:43:18 标签: python 30760 python pandas dataframe
  5. Android-上传图片(二)_HttpClient
  6. 经典算法题 -- 判断单链表是否成环及寻找成环节点
  7. hdu 3590——PP and QQ
  8. day8-异常处理与网络编程
  9. Axure高保真学校后台管理作品管理教师管理资源审核学生管理家长管理权限管理资源管理web端后台模板管理教师审核统计分析教育后台管理系统学校后台管理系统校园后台管理系统
  10. echarts改变图例位置
  11. wow和scrollreveal动画
  12. 53.Linux/Unix 系统编程手册(下) -- POSIX 信号量
  13. Java Map是否有序
  14. 【笔记】顶会论文程序复现供自己使用的方法
  15. jadx 反编译apk
  16. 使用IDEA-创建java项目
  17. pandas 之 to_csv 保存数据出现中文乱码问题及解决办法
  18. PANGU 生态乐园 NFT 系列上线 The Sandbox 市场平台
  19. 工伤事故带班的工头是否要经济赔偿
  20. windows安全警报怎么关闭_10月23日,鄂州华容进行防空警报鸣放,请不要惊慌!...

热门文章

  1. python 中 sorted() 和 list.sort() 的用法
  2. B2c商城图片尺寸设定研究 尺寸应该多大合适
  3. [译] 响应式 Web 应用(一)
  4. Codeforces Round #253 (Div. 1) A. Borya and Hanabi 暴力
  5. OSChina 周三乱弹 —— 一起 High High High!
  6. IP_FORWARD转发
  7. android中完全退出当前应用程序的四种方法
  8. Redhat5虚拟系统安装VmwareTools
  9. 宝塔建站 mysql在哪_宝塔面板建站教程,越详细越好纯小白! - 搜外问答
  10. 简单的java rpc_Java 简单的rpc 一