㈠ linux线程的几种结束方式
Linux线程的几种结束方式
Linux创建线程使用
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg)
1
2
Linux线程的几种结束方式:
调用pthread_exit(exit_code),exit_code为线程退出的状态代码。同一进程下的其他线程可以通过pthread_join(exit_code)来使用。
函数start_routine使用return返回,与调用pthread_exit()作用相同。
线程被取消pthread_cancel()。
同一进程中的其他线程调用了exit(),,或者主线程从main函数返回。
㈡ linux 线程问题
主要理解在fork函数。
你可以参考
http://hi..com/huifeng00/blog/item/c7e9a4c6c5e6eac739db49b6.html
这会产生分支,
fork会产生一个子进程。
根据fork的返回值的不同运行不同的代码。
在子进程返回值是0,而父进程就是调用这个函数的进程中返回的则是进程的ID也就是>0。
所以在子进程中执行
pthread_attr_init(&attr);
pthread_create(&tid,&attr,runner,NULL);
pthread_join(tid,NULL);
printf("CHILD:value=%d",value);
这个子进程会启动一个线程
void*runner(void*param){
value=5;
pthread_exit(0);
}
让value=5;
所以输出
CHILD:value=5;
而父进程则执行
wait(NULL);
printf("PARENT:value=%d",value);
由于wait()所以它会暂停父进程,等待子进程结束。
子进程结束后,然后父进程运行输出
PARENT:value=0
至于为什么是0,因为子进程和父进程的数据是在内存中各有一份的。
子进程只是改变了它那份。父进程中还是0.
㈢ linux线程如何运行
pthread_create执行后,如果执行成功会生成一个子线程 也就是现在有两个线程同时运行
父线程还会继续执行后面的代码 直到结束
子线程则开始执行thread函数体里的代码了 别的不执行
pthread_join会按照父线程执行顺序 到它了就会执行 该函数的作用是阻塞等待一个线程执行完毕
在你的代码里 不一定在子线程执行3次后才启动 也可能子线程没有执行呢 父线程就执行到pthread_join了 然后阻塞等待子线程
如果你想让pthread_join在子线程3次执行后才启动 可以让父线程sleep下 不过子线程执行完了 你再执行pthread_join也就没有什么意义了
不懂再问
㈣ linux怎么查看线程
1查看物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u 2查看核心数量 grep 'core id' /proc/cpuinfo | sort -u | wc -l 3查看线程数 grep 'processor' /proc/cpuinfo | sort -u | wc -l 英特尔最新推出了第六代酷睿产品
㈤ Linux到底有没有线程
线程只是一个概念,Linux视线程和进程是一样的,所以它只需要一个“进程”的概念,Windows视线程为进程生成的更小粒度单位。
所以其实大家只是看待问题角度不同,不代表Linux“没有”线程
㈥ linux终端中如何查看用了多少个线程
1、top -H
top命令是linux下常用的性能分析工具,也是一个强大的系统检测工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
-H : Threads toggle是否显示线程,为on时将显示所有线程
2、ps xH
ps查看当前用户的活动进程
-H: Show threads as if they were processes
查看所有存在的线程。
3、ps -mp <PID>
-m: Show threads after processes
查看某个进程的线程
㈦ linux如何进行线程管理
方法一:PS
在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。
1.$ ps -T -p <pid>
“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。
方法二: Top
top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。
1.$ top -H
要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:
$ top -H -p <pid>
㈧ Linux的线程怎么关闭
杀死线程 所在的进程就可以,
ps aux | grep 进程名
kill -TERM 进程号
如果你指的写程序, 那就参考 man pthread_exit
㈨ linux 并行 线程选多少合适
具体问题具体分析,如果你主要是做纯计算(比如数学运算,物理计算等),那么线程数应该等于cpu核心数。如果主要是io操作(即需要访问硬件外设),一般来说线程数的提升并不能提高运行速度。 如果是 计算 + IO, 一般来说线程数应该大于cpu核心数。
总的来说,除了第一种,后两种情况都应该实际测试看效果。
㈩ linux中的线程有哪几种状态
就绪:线程分配了CPU以外的全部资源,等待获得CPU调度
执行:线程获得CPU,正在执行
阻塞:线程由于发生I/O或者其他的操作导致无法继续执行,就放弃处理机,转入线程就绪队列
挂起:由于终端请求,操作系统的要求等原因,导致挂起。