关于Linux 线程pthread_join的用法Linux系统pthread_join用于挂起当前线程(调用pthread_join的线程),直到thread指定的线程终止运行为止,当前线程才继续执行 。
案例代码:
/*******************************************
**Name:pthread_join.c
**用于Linux下多线程学习
**案例解释线程的暂停和结束
**Author:admin
**Date:2015/8/11
**Copyright (c) 2015,All Rights Reserved!
**********************************************
#include pthread.h
#include unistd.h
#include stdio.h
void *thread(void *str)
{
int i;
//不调用pthread_join线程函数
for (i = 0; i10;i)
{
sleep(2);
printf( "This in the thread : %d\n" , i );
}
return NULL;
}
int main()
{
pthread_t pth;
int i;
int ret = pthread_create(pth, NULL, thread, (void *)(i));
//调用pthread_join线程函数
pthread_join(pth, NULL);
for (i = 0; i10;i)
【linux挂起线程命令 linux程序挂起】{
sleep(1);
printf( "This in the main : %d\n" , i );
}
return 0;
}
通过Linux下shell命令执行上面的案例代码:
[root@localhost src]# gcc pthread_join.c -lpthread
[root@localhost src]# ./a.out
This in the main : 0
This in the thread : 0
This in the main : 1
This in the main : 2
This in the thread : 1
This in the main : 3
This in the main : 4
This in the thread : 2
This in the main : 5
This in the main : 6
This in the thread : 3
This in the main : 7
This in the main : 8
This in the thread : 4
This in the main : 9
子线程还没有执行完毕,main函数已经退出,那么子线程也就退出了 , “pthread_join(pth, NULL);”函数起作用 。
[root@localhost src]# gcc pthread_join.c -lpthread
[root@localhost src]# ./a.out
This in the thread : 0
This in the thread : 1
This in the thread : 2
This in the thread : 3
This in the thread : 4
This in the thread : 5
This in the thread : 6
This in the thread : 7
This in the thread : 8
This in the thread : 9
This in the main : 0
This in the main : 1
This in the main : 2
This in the main : 3
This in the main : 4
This in the main : 5
This in the main : 6
This in the main : 7
This in the main : 8
This in the main : 9
这说明pthread_join函数的调用者在等待子线程退出后才继续执行 。
linux c语言怎样挂起线程/进程线程
可以用pthread_kill函数
传递信号SIGSTOP挂起
传递SIGCONT 恢复
进程
调用系统linux挂起线程命令的stop挂起
或者用kill -stop 挂起
类似linux挂起线程命令的 用SIGCONT 恢复 。
linux系统中挂起操作和强制结束操作(后台运行程序方法)在linux系统中有这两个命令 ctrl z和ctrl c linux挂起线程命令 , 这两个命令输入之后看起来结果差不多linux挂起线程命令 , 实质是不同linux挂起线程命令的 。
他们都有中断命令的效果linux挂起线程命令,但是作用是不一样的 。
ctrl c是强制终止程序的执行并结束进程 。而ctrl z则只是中断任务的执行,但该任务并没有被结束 。
它只是在进程中维持挂起的状态,用户可以使用fg/bg命令来继续前台/后台执行该任务 。fg命令会重启
前台被中断的任务,bg命令会把中断的任务放到后台执行 。
linux挂起线程命令你也可以使用bg这样的方法让一个前台执行的任务切换到后台去执行 。
也可以使用fg这样的方法让一个后台执行的任务切换到前台去执行 。
还有一个最常用的方法是
在一行命令的最后输入,可以让这行命令放到后台去运行 。
使用jobs命令查看当前有多少后台程序在运行 。
关于linux挂起线程命令和linux程序挂起的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 安卓系统打电话没有铃声,安卓系统微信铃声怎么设置
- 大学什么专业拍摄,大学拍视频的专业
- 双人超凡赛车游戏下载,双人版赛车
- go语言运算教学 go语言运行原理
- python字符变量比较,python中比较字符串的大小
- 毕业设计封面绘画软件推荐,毕业设计画册封面
- oracle是怎么赔偿的 oracle的价格
- java拖动拼图游戏代码,java实现拼图小游戏
- windows8系统删除的简单介绍