版权声明: C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您联系我们指正,非常感谢!!!
我只是用来方便学习 && 复习!!! 我只是一个学习者, 内功有限, 大家看到谨慎参考!!!
示例代码
#include <stdio.h> #include <unistd.h> #include <pthread.h> int x = 0, y = 0; //x用于线程一, y用于线程二. pthread_t pthid1, pthid2; //第一个线程的主函数 void *pth1_main(void *arg); //第二个线程的主函数 void *pth2_main(void *arg); int main() { //创建线程一 if ( pthread_create(&pthid1, NULL, pth1_main, (void*)0) != 0 ) { printf("pthread_create pthid1 failed. \n"); return -1; } //创建线程二 if ( pthread_create(&pthid2, NULL, pth2_main, (void*)0) != 0 ) { printf("pthread_create pthid2 failed. \n"); return -1; } printf("111\n"); pthread_join(pthid1, NULL); printf("222\n"); pthread_join(pthid2, NULL); printf("333\n"); return 0; } void *pth1_main(void *arg) { for (x = 0; x < 100; x++) { printf("x=%d\n", x); sleep(1); } pthread_exit(NULL); //终止调用线程 } void *pth2_main(void *arg) { for (y = 0; y < 100; y++) { printf("y=%d\n", y); sleep(1); } pthread_exit(NULL); //终止调用线程 }在shell中执行:
查看当前运行的进程: ps aux | grep book(要查看的执行文件) 查看当前运行的轻量级进程: ps -aL | grep book (要查看的执行文件) 查看主线程和新线程的关系: pstree -p主线程id
在gdb中执行:
查看线程: info threads 切换线程: thread 线程id 只运行当前线程: set scheduler-locking on 运行全部的线程: set scheduler-locking off 指定某线程执行某gdb命令: thread apply线程id cmd 全部的线程执行某gdb命令: thread apply all cmd
查看当前运行的进程 info b #查看断点 #指定某线程执行某gdb命令
我觉得和多进程差不多. 目前没有用上, 用上再复习(查资料)吧!!!
视频来源:
时间: 2020-09-03